git merge other_branch -s ours --no-commit --no-ff
git difftool other_branch
*manually merge all relevant files*
git add .
git commit -m "merged with other_branch"
这是一个可接受的合并工作流程,我想绝对避免任何自动合并并手动完成所有操作吗?
这个合并是否会在repo的历史中正确注册为合并?
您可以通过在工作目录的根目录中放置和提交.gitattributes文件来完全避免任何自动合并,其中包含以下内容:
* -merge
这将在合并期间保持“本地”版本不变,但是当双方更改文件时,它会将文件标记为冲突。然后你必须自己解决每一个冲突 - 不要用git猜测。
请参阅gitattributes Documentation部分“执行三向合并”。
然后,您可以照常使用自己喜欢的合并工具,但请记住,某些mergetools会自行解决“原始”冲突。然后你只是将你的问题推得更进一步 - git将不再解决原始冲突,但mergetool会这样做。在mergetool中寻找一个选项来避免这种情况。例如,如果您使用的是KDiff3,则可以转到选项“集成”选项卡,并将“--auto”添加到“要忽略的命令行选项”选项。