分支名称变得奇怪

Branch name becomes strange

我在我的测试存储库中手动产生了合并冲突。这是冲突:

<<<<<<< 头

++进位

=======

++中

>>>>>>>> 635e85d6e45907a6b1c63d934618040adcbb8474

“635e85d6e45907a6b1c63d934618040adcbb8474”让我很困惑。这不应该是分支名称吗

635e85d6e45907a6b1c63d934618040adcbb8474 是某个commit的head的名称。 Git 让您有可能“穿越时空”回到您的代码的先前版本。该数字表示特定的提交。

您可以找到 运行ning git log 的提交列表,并在那里找到相同的编号。

git branch 看看你在哪个分支 例如,如果您的分支名为 developer 然后你可以 运行 git checkout developer 回到那个分支。

<<<<<<< 和 >>>>>> 表示相同的文件已从多个来源更改,它试图合并,但不知道要保留哪个。

强烈建议您参考文档 https://git-scm.com/doc

Shouldn't this be the branch name instead?

通常 ,但不总是:

  • 如果你运行git合并<em>hash</em>,Git只有hash ID对于另一个提交,这就是你得到的。
  • 如果你 运行 一个 git merge 执行 递归 合并——我的意思是使用递归策略的合并实际上最终会递归,与大多数合并不同,后者不这样做——inner 合并使用原始哈希 ID,并且此哈希 ID 最终出现在 merge base 中文字.

Git 输入分支名称而不是原始提交哈希 ID 的方法有点偷偷摸摸,1 并重新创建合并冲突git checkout -m 不使用它,因此也使用原始哈希 ID。


1合并代码设置了一些神奇的环境变量,允许低级合并代码将哈希 ID 转换为任意名称。这些没有记录在案,因此可能会发生变化,所以即使您知道它们是什么,也不要使用它们。