Git检出(git权威指南笔记)

本文详细介绍了Git的检出操作,包括HEAD头指针的概念、如何查看当前分支、分离头指针的状态及其处理。重点解析了`git checkout`命令的不同用法,如重置暂存区、覆盖工作区文件、切换分支以及创建新分支。同时强调了在分离头指针状态下执行检出可能导致的提交丢失风险,并提供了各种场景下的实例操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HEAD:头指针,是当前工作区的基础版本

看到当前处于的分支:git branch -v 


分离头指针:git checkout 4902dc3^

处于分离头指针状态,可以检查、测试和提交,而不影响任何分支。通过执行另外的一个checkout检出指令会丢弃在此状态下的修改和提交


挽救分离头提针

git branch -v

git merge acc2f69


深入了解git checkout命令

git checkout:是git最常用的命令,但也是一个很危险的命令,因为这条命令会重写工作区

1、git checkout [-q] [<commit>] [--] <paths>

<commit>可选 的如果省略则从暂存区(index)进行检出

重置:一般用于重置暂存区(除非使用--hard参数)

检出:主要用于覆盖工作区

不会改变HEAD头指针,主要用于指定版本的文件覆盖工作区中对应的文件。

如果省略<commit>,则会用暂存区的文件覆盖工作区的文件,

否则用提定提交中的文件覆盖暂存区和工作区中对应的文件。


2、git checkout [<branch>]

会改主HEAD头指针,

参数写件<branch>。是因为只有HEAD切换到一个分支才可以对提交进行跟踪,否则会进入“分离头指针”的状态。“在分离头指针”状态下的提交不能被引用关联到,从而可能丢失


3、git checkout [-m] [[-b|--orphan] <new_branch>] [<start_point>]

创建和切换到新的分支(<new_branch>),新的分支从<start_point>提定的提交开始创建



git checkout branch 

检出branch分支,完成1,2,3

1、更新HEAD指向branch分支

2、用branch指向的树更新暂存区和工作区


git checkout  git checkout HEAD

汇总显示工作区、暂存区与HEAD的差异


git checkout --filename

用暂存区中filename文件来覆盖工作区的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改


git checkout branch --filename

维持HEAD的指向不变。用branch所指向的提交中的filename替换暂存区和工作区中相应的文件

注意:会将暂存区和工作区中的filename文件直接覆盖


git checkout -- .   git checkout .

注意:git checkout 命令后的参数为一个点(“.") 这条命令最危险 会取消所有本地的修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值