我正在组建一个双人团队。我对名为PostSet的文件进行了一些更改。我推动了这些改变。我的合作伙伴也对同一个文件进行了更改,甚至对同一个查询也进行了更改。他跑了
git pull --rebase origin master
为了将他的变化置于我的最高层,并保持工作历史的清洁,就像我们一直做的那样。通常,如果我们编辑同一行,我们会遇到冲突。
他被告知与一些图像文件有关的一大堆冲突(一个完全不同的问题)。只是为了解释一切,他通过使用
解决了这个问题git rm -r path/to/image/dir
然后
git add -A
将所有这些更改添加到索引中。使用后
git rebase --continue
没有更多的冲突。但是,我们立即注意到相关查询现在正在使用我的更改,而不是他的。实际上,整个文件PostSet在rebase之后是旧版本。
不应该有关于PostSet文件的某种冲突警告吗?我们做错了什么吗?
简而言之,我们无法自信地继续发展,直到我们知道更改将不会被覆盖,所以我们相当沮丧。
非常感谢,
帕拉贡
编辑:我们完全复制了我们的步骤并获得了相同的结果。
编辑:鉴于没有人似乎有任何线索,我可能会将此报告为git中的错误。如果有人提出一个疯狂的建议,我会暂时搁置一段时间。
答案 0 :(得分:1)
我使用git版本1.7.3.1执行了相同的步骤。 在这一步之后:
git rm -r path/to/image/dir
文件PostSet仍处于冲突模式,您可以通过请求该状态(这是我的输出)进行验证:
$ git status -s
UU PostSet
D images/test.jpg
现在你仍然需要解决PostSet中的冲突。 如果你跳过它并执行
git add -A
你得到以下情况,git认为它是一个已解决的冲突,而你实际上并没有这样做:
$ git status -s
M PostSet
D images/test.jpg
最好先解决冲突,然后再使用git add -A
或者我可能在这里遗漏了一些信息?