为何Git的HEAD同时指向main和master两个分支?
Git中HEAD同时指向main和master分支的原因解析
你遇到的情况是Git的正常表现,原因如下:
你用
git checkout -b main创建main分支时,是基于当前所在的master分支的最新提交生成的新分支。此时main和master完全重合,指向同一个提交节点——因为你还没在任何一个分支上做新的代码修改或提交。HEAD是Git里指向当前工作分支的指针,现在你处于main分支,所以HEAD指向main。但因为main和master当前共享同一个提交,
git log会把所有指向该提交的分支都列出来,所以看起来像是HEAD同时指向两个分支,实际上HEAD只指向main分支。
验证方法
- 执行
git branch --show-current,会输出main,确认当前确实在main分支,HEAD指向它。 - 在main分支做一次新提交:
再执行echo "test" >> README.md git add README.md git commit -m "add test content"git log,就会看到main分支指向新的提交,而master还停留在原来的提交上,不会再同时标注在同一个提交后面。
你的操作命令回顾
本地初始化仓库默认分支为master:
PS C:\job-artifacts-and-outputs> git branch --show-current master
创建并切换到main分支:
PS C:\job-artifacts-and-outputs> git checkout -b main Switched to a new branch 'main'
执行git log看到的结果:
PS C:\job-artifacts-and-outputs> git log commit 543f66cebf3619da036ed52e978ee81c2e09934c (HEAD -> main, master)
内容的提问来源于stack exchange,提问作者Ramit Kishore Saha
相关产品推荐
相关产品推荐

