我们说我有两个分支
我想将A
中的更改合并到B
。但是,A
包含一些我更改的文件以及其他人更改的文件。例如,在A
中,有2个文件已更改。
在从A
合并到B
时,我发现与其他人更改的文件存在冲突(在运行示例中,JavaFile2.java
)。现在,我希望合并继续进行,以便
我不确定使用mine
或theirs
的解决方案是否合适,因为在下一次合并时,它可能永远不会再考虑冲突(git会将冲突标记为在将来的合并中解决)。
我想我也可以挑选,但在我们的团队中,我们制定了一项政策merge
向前(例如从A
到B
)和向后挑选(例如从B
到A
)。
有可能像我说的那样做吗?我们还有一个策略,开发人员必须合并他们自己的提交,但不幸的是,这个开发人员在接下来的两周(假期)不可用。
答案 0 :(得分:2)
对我来说,处理这个问题的概念上最简单的方法是执行合并,然后将有问题的文件重置为B
中的提交,该提交位于合并之前该分支的HEAD
处
用于重置其他用户修改的文件的命令是:
git checkout <SHA-1> path/to/another/JavaFile2.java
其中<SHA-1>
是合并之前B
上最近一次提交的哈希值(即您要保留的版本)。
如果在合并期间此文件中存在合并冲突,则可以使用上述命令重置它并提交。如果合并完成且没有冲突,那么您仍然可以运行上面的命令,并且可以修改合并提交:
git add path/to/another/JavaFile2.java
git commit --amend