我的 git merge 问题很大,我的仓库现在有点麻烦。
实际上,我有很多文件看起来是这样的:
<<<<<<< HEAD
...version1...
=======
...version2...
>>>>>>> <long hexa code>
正如我们所知,这是 merge 冲突情况下的正常行为。 但是我没有其他文件版本,只有这些。
我如何以交互方式 merge 它?我需要的是看到彼此相邻的“version1”和“version2”并能够以交互方式 merge 它们。
当然,这些文件格式意味着每个软件都有语法错误。
git merge
和所有的 merge 工具都在说,没有 merge 冲突。但是,有。
我该怎么办?
分机#1: 我用一些 shellscripting 分割文件,使用命令
for i in $(cat ../conflicts); do csplit $i '/=======/' -f $i. -n 1;done
现在我在 path.0
和 path.1
中有了这些文件的部分。现在我需要一个交互式解决方案来 merge 它们。
最佳答案
如果 git 说没有 merge 冲突,那么这些文件要么按原样添加,要么已经提交。
如果它们是按原样添加的,那么您应该运行 git reset HEAD
这将重置索引的状态。然后,您应该再次看到所有已提交的新文件,在这种情况下,您可以单独处理它们。
如果它们实际上已被提交,那么您将需要撤消 merge 节点,然后再次执行 merge 节点。您可以使用 git reset --hard HEAD^
重置到最后一个已知点(并丢弃提交)并再次重新进行 merge 。请注意,此选项将丢失您的数据;您实际上是在重新进行 merge 。
关于git - 如何通过只有冲突文件来解决 git 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250964/