当在两个分支中编辑文件时,有没有办法让Git强制手动解析文件?
我的问题是我想要从一个分支进行一些更改,而从另一个分支进行一些更改。事实证明,这些变化并不总是相互衔接,但算法并不总是选择正确的变化。
我注意到的一点是,3向合并中的基本文件并不是我所期望的。 是否可以让Git使用一个分支中的选定文件作为基础?
答案 0 :(得分:2)
如果git检测到文件中的冲突,它将始终要求您编辑(或使用合并工具)来修复冲突。在这种情况下,您可以在分阶段之前修复它。
如果git没有检测到特定文件中的冲突但在其他地方检测到冲突,那么您可以在进行合并提交之前始终修复该特定文件并添加修订(git add
)。
在这种情况下,您可以通过git show HEAD:path/to/file
和git show MERGE_HEAD:path/to/file
访问该文件的两个不同父版本。如果要在编辑器中打开它们,可以将git show
输出重定向到临时值。
修复文件并解决任何其他冲突后,您可以暂停修复(git add
)并进行合并提交(git commit
)。
如果git没有检测到任何提交,它将使合并提交没有进一步的提示。
在这种情况下,您仍然可以修复您的文件。可以通过git show HEAD:path/to/file
和git show HEAD^2:path/to/file
访问这两个父版本。
修复文件后,您可以暂存(git add
)并使用git commit --amend
重做合并提交。