[英]Git merge with beyond compare
我最近购买了超越compare pro来合并与git
共享的代码(我对此了解非常有限)。 我现在有两个分支,一个master
分支和一个feature
分支。 我最近从远程撤回了master
,这样现在master
要比master
和feature
的共同祖先提前几步。
由于我的分支feature
大部分已删除,因此我想将master
合并到feature
而不是将其合并(这有意义吗?)。 所以我基本上做了
git checkout master
git pull origin master
git push origin master
所以在这一点上,我的feature
是在master
之后进行一些提交,而在master
之前进行一些提交。 要将master
的提交合并到feature
我做了以下操作:
git checkout feature
git merge master
git mergetool
现在,系统提示我一系列消息
Deleted merge conflict for 'ED/build/make/rules.mk':
{local}: deleted
{remote}: modified file
Use (m)odified or (d)eleted file, or (a)bort? m
Normal merge conflict for 'ED/src/driver/ed_model.F90':
{local}: modified file
{remote}: modified file
merge of ED/src/driver/ed_model.F90 failed
Continue merging other unresolved paths [y/n]? y
所有其他文件都给出了失败的合并错误,甚至没有打开beyondcompare mergetool进行合并。
(m)odified or (d)eleted
,这是否意味着我必须选择由于合并而在本地和远程之间选择哪个文件? 编辑
我的.gitconfig的相关部分是
[diff]
tool = bc3
[difftool]
prompt = false
[difftool "bc3"]
trustExitCode = true
[core]
fileMode = false
symlink = false
ignorecase = true
[merge]
tool = bc3
[mergetool "bc3"]
trustExitCode = true
[alias]
difftool = difftool --dir-dif --no-symlinks
第一个提示符说(m)odified或(d)eleted,这是否意味着我必须选择由于合并而在本地和远程之间选择的文件?
是。 假设您希望这些文件保留在feature
分支中,并且不关心自从最初删除它们以来如何进行更改,可能要选择(d)删除状态。
通常,您的master
应始终与遥控器保持同步。 本地更改(例如删除文件)可以在执行feature
正确地在feature
分支中完成,所以很好。 如果您所做的更改纯粹是本地性的,决不打算成为主项目的永久组成部分,那么它们将永远保留在feature
分支中,并且您每次从远程站点获取新更新时,都偶尔会从master
合并到feature
,就像您所做的一样。 您想要从feature
重新合并到master
然后进行push
的唯一时间是为每个使用该项目的人进行更改。
第二个提示告诉我合并失败,为什么会这样?
如果对上述任何一个的回答为“否”,那么您将返回git,并且合并标记仍在文件中,这意味着“我没有完成”。 换句话说,该合并“失败”,这意味着它没有完全成功完成。
我不会担心文件地址看起来不对。 当git尝试解析合并时,它将三个不同的版本(远程,本地,合并)复制到三个临时文件中。 完成编辑和合并后,它将“合并的”文件复制回本地文件。
所有其他文件都给出了失败的合并错误,甚至没有打开beyondcompare mergetool进行合并。
这似乎很奇怪。 通常git将一一继续。 抱歉,我在这里没有更多帮助。
如果要在“超越比较”中查看未解决的冲突,可以运行git mergetool
,它将打开与默认合并工具的冲突。 如果尚未安装,则必须先设置git才能使用Beyond Compare。
有关配置说明,请参见此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.