我最近购买了Beyond Compare Pro以合并使用git共享的代码(我对git的理解非常有限)。现在我有两个分支,一个是master,另一个是feature。我最近从远程拉取了master,所以现在master比master和feature之间的共同祖先超前几个提交。
由于我的feature分支大多是删除操作,我希望将master合并到feature而不是相反(这有意义吗?)。所以基本上我做了以下操作:
现在我遇到了一系列类似以下信息的提示:
由于我的feature分支大多是删除操作,我希望将master合并到feature而不是相反(这有意义吗?)。所以基本上我做了以下操作:
git checkout master
git pull origin master
git push origin master
此时我的feature
分支比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
所有其他文件都会在打开Beyond Compare合并工具之前给出无法合并的错误提示。
- 第一个提示会问:“更改(m)或删除(d)”,这是否意味着我必须选择本地和远程文件中哪一个作为合并的结果?
- 第二个提示告诉我合并失败了,为什么会这样?
编辑
我的.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