【git】git的HEAD | detached HEAD 状态|reset和checkout的区别

HEAD 是一个指针,通常情况下,它指向当前所在分支,而分支又指向一个 commit 提交。HEAD 并不总指向一个分支,某些时候仅指向某个 commit 提交,这就形成 detached HEAD。

切换到 detached HEAD 状态时,会有一个警告。

提示我们可以任意的修改和提交,通过切换回分支时不影响任何分支的状态。

在你没切走之前,可以创建一个新分支来保留所创建的提交,则可以通过在 switch 命令中使用 -c 来执行此操作:

git switch -c <new branch name>

如果你没有执行上面的命令,当你切走之后,会有一个警告。

在 detached HEAD 状态下开发新的 feature,将没有任何办法引用到这个 feature。你可以把 detached HEAD 状态看作是正在一个未命名的分支上。你只需要给这个分支命名就可以使用这个 feature 了,然后就可以把这个新分支上的代码合并到其他分支上了,通过命令:

git branch <new-branch-name> 588f5c0

假设你正在进行一次疯狂的重构,但现在你不确定是否要继续下去。这时你想要看一下开始这次重构之前项目原来的样子,首先你需要查看版本的ID,然后使用 git checkout 切换到这个之前的版本。

git checkout a1e8fb5

这让你的工作区切换到了 a1e8fb5 comimit 的状态。你可以查看文件、编译项目、运行测试用例,甚至编辑文件,完全不用担心丢失项目“当前”的状态,你在这里做的所有修改都不会被保存到项目中。当你想要继续那次疯狂的重构时,你需要回到项目的“当前”状态。

git checkout master

git的reset和checkout的区别

git的reset和checkout的区别:https://blog.csdn.net/q563573095/article/details/79567430 

git checkout HEAD命令的作用是将当前工作目录重置为最新的提交状态,即将HEAD指针指向最新的提交。它与git checkout Mx命令的功能相同,都是将本地仓库更新到最新的提交状态。当使用git checkout HEAD命令时,会处于"detached HEAD"状态,可以浏览、尝试修改并提交实验性更改,而且可以在不影响任何分支的情况下丢弃在此状态下进行的任何提交。如果需要创建一个新的分支来保留所创建的提交,可以再次使用带有checkout命令的-b选项来创建新分支。以git checkout head为例,如果我们尚未离开commit f,下面命令中的任何一个都将创建对它的引用:git checkout -b foo (1)、git branch foo (2)、git tag foo (3)。123 #### 引用[.reference_title] - *1* *2* [git checkout之一 HEAD基本和detached 状态](https://blog.csdn.net/fduffyyg/article/details/83542504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [GIT命令git-checkout的分离HEAD](https://blog.csdn.net/ystyaoshengting/article/details/104074499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值