这是一个简单的问题,但是git确实使它的标签混乱了,我找不到答案。
当我进行本地更改并且想要将最新的远程存储库合并到本地存储库中时,我先进行本地提交,然后执行git pull。
出现合并冲突时,我可以选择使用MERGE_HEAD解决冲突,并使用HEAD解决冲突
哪个是远程存储库,哪个是本地存储库?
谢谢
答案 0 :(得分:5)
它们都是本地的(这很重要,尽管不是很有帮助:-)
HEAD
是您的当前分支,即您现在已签出的分支。对于git merge
,这就是您开始时签出的那个。
MERGE_HEAD
是其他提交,表示您告诉Git合并的提交的哈希ID 。也就是说,git merge origin/master
将origin/master
解析为某个本地提交哈希ID,然后合并该提交,而MERGE_HEAD
包含该提交的哈希ID。
我认为另一个提交的更好的术语是 other 或--theirs
,Git有时会使用这些术语,但是Git的其他部分确实会使用 remote 引用--theirs
提交。
答案 1 :(得分:0)
我在寻找同一问题时偶然发现了这个线程。我将WinMerge用作TortoiseGit的合并工具,解决冲突时,它将显示3个窗格:左侧的if 'only for testing' in sent.lower()
,中间的MERGE_HEAD
和右侧的Base
。
结果是HEAD
是您要合并的提交/分支,MERGE_HEAD
是您要合并的提交/分支,而HEAD
是合并结果您应该对其进行编辑以解决冲突。
因此,您应该在中间窗格Base
中编辑代码,保存并提交。