在TortoiseGit中,哪一个是MERGE_HEAD,哪一个是HEAD?

问题描述 投票:0回答:3

这是一个简单的问题,但 git 的标签确实令人困惑,我找不到答案。

当我有本地更改并且想要将最新的远程存储库合并到本地存储库时,我会进行本地提交,然后 git pull。

当出现合并冲突时,我可以选择使用 MERGE_HEAD 解决冲突并使用 HEAD 解决冲突

哪个是远程仓库,哪个是本地仓库?

谢谢你

git tortoisegit
3个回答
33
投票

他们都是本地人(这很重要,尽管不是很有帮助:-))。

HEAD
是您的当前分支,这意味着您现在已签出的分支。对于
git merge
,这是您开始时签出的那个。

MERGE_HEAD
其他提交,这意味着您告诉Git合并的提交的哈希ID。也就是说,
git merge origin/master
origin/master
解析为某个本地提交哈希 ID,然后合并该提交,并且
MERGE_HEAD
包含该提交的哈希 ID。

我认为另一个提交的更好术语是 other

--theirs
,Git 有时使用这些术语,但 Git 的其他部分确实使用术语 remote 来指代
--theirs
提交。


2
投票

我在搜索同样的问题时偶然发现了这个线程。我使用 WinMerge 作为 TortoiseGit 的合并工具,在解决冲突时,它会显示 3 个窗格:左侧的

MERGE_HEAD
,中间的
Base
,右侧的
HEAD

原来

MERGE_HEAD
是您要尝试合并的提交/分支,
HEAD
是您要尝试合并到的提交/分支,
Base
是您应该编辑才能解决的合并结果冲突。

因此,您应该在中间窗格中编辑代码,

Base
,保存并提交。

2021年11月11日更新:这个答案不准确..请参阅下面的评论。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.