首页 > 其他分享 >git使用

git使用

时间:2024-07-02 14:54:50浏览次数:20  
标签:HEAD git name 暂存区 提交 使用 分支

git练习网站
git菜鸟教程

本地

  • HEAD 当前分支的最新提交
  • 分离HEAD:git switch 节点哈希值 :让head指向了某个具体的提交记录而不是分支名

查看分支状态

  • git status
    • -s --short 简洁模式
    • Untracked files
    • not staged
    • to be committed

image

添加到暂存区

  • git add . 将工作区所有更改添加到暂存区stage
    • .gitignore 文件中的文件会被忽略

提交

  • git commit -m "描述" 提交stage的一个快照到本地仓库
  • git commit --amend 修改最近一次提交(如某个文件多/少/错提交了)

撤销

  • git reset 重置当前分支到指定提交点,之后的节点记录会被移除(适用个人分支/本地分支)
    --mixed:保留工作区,移除暂存区(默认)
    --soft:保留工作区和暂存区
    --hard:移除工作区和暂存区(不建议)

    • git reset HEAD 撤销stage中add的所有内容
    • git reset <file> 撤销stage中add的指定文件
    • git reset HEAD^ 撤销一次commit(重置分支的 HEAD 到 HEAD 的父提交)
  • git rm --cached <file> 从暂存区删除某文件

  • git revert 撤销某次提交;通过创建一个新的提交来实现撤销,从而保持了提交历史的完整性(适用协作的公共分支)

    • git revert HEAD 撤销最近一次的提交

整理提交记录

  • git cherry-pick <提交号> 将指定的提交节点复制到当前分支
    • 如dubug分支的记录不想提交,可以cherry-pick debug后的分支到main
  • git rebase -i HEAD~3 交互式rebase 会有一个UI窗口

标签

  • git tag tag_name <提交号> 给某个提交打标签,默认给HEAD打

分支管理

新建分支

  • git branch name 在当前节点上创建一个名为name的分支
    • git branch -f main HEAD~3 将 main 分支强制指向 HEAD 的第 3 级 parent 提交

分支切换

  • git switch name 切换到分支name上
  • git checkout -b name 新建并切换
  • git checkout -- <file> 会用暂存区指定的文件替换工作区的文件
  • git checkout HEAD . 或者 git checkout HEAD <file> 会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件

分支合并

  • git merge name 将name分支合并到当前分支(会新建节点)如果有冲突的话会报冲突,需要解决冲突
  • git rebase name 将name分支取出放到当前分支下 (可用于移动分支指针)

远程

远程分支:仓库名/分支名 远程分支反映了远程仓库在你最后一次与它通信时的状态

  • 切换到远程分支时会进入分离HEAD状态,因为本地的修改必须push上去才能改变远程分支的状态

拉取

  • git fetch 从远程仓库下载缺失的记录到本地&更新远程分支的指针
    • 不会改变你本地仓库的状态
  • git pull 下载并和当前分支合并
    • == fetch + merge
  • git pull --rebase 下载并rebase

上传

  • git push 上传提交的内容并合并远程分支
  • ``

标签:HEAD,git,name,暂存区,提交,使用,分支
From: https://www.cnblogs.com/qwangg/p/18279838

相关文章

  • HAL库使用SPI协议修改MCP41010数字电位器阻值
    MCP41010MCP41010-I/SN是采用8引脚SOIC封装的8位分辨率单通道易失数字电位器。抽头的位置呈线性变化,并通过行业标准SPI接口进行控制。MCP41010的电阻值为10Kohm,具有出色的交流和直流特性,在静态工作期间的功耗小于1?A。提供了软件关闭功能,该功能可将“A”端子与电阻器堆栈断......
  • 使用中转API进行大模型调用的入门指南
    引言在AI技术的快速发展中,大模型(LLM)成为了许多应用的核心组件。然而,由于某些地域限制和网络原因,直接访问国际API可能会遇到障碍。因此,使用中转API(http://api.wlai.vip)来调用这些大模型成为一种实用的解决方案。本文将介绍如何使用中转API调用大模型,并提供相关的示例代码。......
  • Python创建异步任务队列库之Huey使用详解
    概要Huey是一个简单的Python库,用于创建异步任务队列。它的设计目标是简单易用,同时具备强大的功能。Huey可以轻松地将任务添加到队列中,然后在后台线程中处理这些任务,从而避免阻塞主线程。这使得Huey非常适合处理I/O密集型或长时间运行的任务。此外,Huey还支持任务的......
  • Python层次密度聚类算法库之HDBSCAN使用详解
      概要HDBSCAN是一种层次密度聚类算法,它通过密度连接性来构建聚类层次结构。与传统的K-Means算法相比,HDBSCAN具有以下几个显著特点:自动确定聚类数量:HDBSCAN能够根据数据自动确定聚类数量,不需要预先指定。适应噪声和异常点:HDBSCAN在聚类过程中能够很好地处理......
  • 面试官:你了解git cherry-pick吗?
    事情要从一次不规范的代码开发开始说起背景故事时间2024年某个风平浪静的周五晚上地点中国,北京,西二旗,某互联网大厂会议室人物小杰,小A,小B,老K对话老K:昨天提交的代码被测试打回来了!为什么小B没开发完的内容也一起提交上去了?小B:啊?我不清楚啊,我在开发分支B开发完一部......
  • ros2 - slam - 使用编码器测量轮子最大速度
    新建example26_max_speed_measurement 添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为Espressif32board=featheresp32;指定使用的硬件板为FeatherESP32framework=arduino;......
  • 在开发环境中使用 RawCap 和 Wireshark 排查本地回路地址
    如何使用RawCap和Wireshark排查本地网络请求中的404错误开发微服务应用时,正确配置网络请求的转发至关重要。本文将通过一个具体示例来展示如何使用RawCap和Wireshark来监控和分析本地回路请求,并排查导致HTTP404错误的可能原因。背景在本例中,用户的浏览器请求经过多......
  • anaconda使用方法
    anaconda介绍Anaconda可以管理环境和软件包,能够便捷获取包且对包能够进行管理,包括了python和很多常见的软件库和一个包管理器conda。常见的科学计算类的库都包含在里面了,使得安装比常规python安装要容易,同时对环境可以统一管理的发行版本。常用指令创建环境:condacreate--n......
  • 在ASP.NET Core中使用brotli压缩
    原文链接:https://www.sohu.com/a/234776551_468635Brotli是一种全新的数据格式,可以提供比Zopfli(Zopfli压缩算法是一个新的兼容zlib(gzip,deflate)的压缩器,该压缩器压缩时需要更多的时间(大约慢100倍),但压缩率比zlib和其他兼容压缩器要好上5%。.zip是一种存档格式,通常使用......
  • ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
    ONNXRuntime简介ONNXRuntime是一个跨平台的推理和训练机器学习加速器。ONNX运行时推理可以实现更快的客户体验和更低的成本,支持来自深度学习框架(如PyTorch和TensorFlow/Keras)以及经典机器学习库(如scikit-learn、LightGBM、XGBoost等)的模型。ONNX运行时与不同的硬件、......