gpt4 book ai didi

git - 为什么用户的更改会在没有提到冲突的情况下被覆盖?

转载 作者:太空狗 更新时间:2023-10-29 13:26:52 24 4
gpt4 key购买 nike

我在一个两人团队中工作。我对一个名为 PostSet 的文件进行了一些更改。我 push 了这些变化。我的合作伙伴也对同一个文件进行了更改,甚至对同一个查询进行了更改。他跑了

git pull --rebase origin master

为了将他的更改置于我的之上并保持工作历史的清洁,就像我们一直做的那样。如果我们编辑同一行,通常会发生冲突。

他被告知与某些图像文件有关的一大堆冲突(一个完全不同的问题)。只是为了解释一切,他通过使用解决了这个问题

git rm -r path/to/image/dir

然后

git add -A

将所有这些更改添加到索引中。使用后

git rebase --continue

没有更多的冲突。然而,我们立即注意到,相关查询现在正在使用我的更改,而不是他的更改。事实上,整个文件 PostSet 在 rebase 之后都在旧版本上。

不应该有关于 PostSet 文件的某种冲突警告吗?我们在 rebase 方面做错了什么吗?

简而言之,在我们知道更改将不再被覆盖之前,我们无法自信地继续开发,因此我们非常沮丧。

非常感谢,

典范

编辑:我们完全重复了我们的步骤并得到了相同的结果。

编辑:鉴于似乎没有人有任何线索,我可能会将其报告为 git 中的错误。如果有人提出疯狂的建议,我会把它搁置一段时间。

最佳答案

我使用 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

或者我可能在这里遗漏了一些信息?

关于git - 为什么用户的更改会在没有提到冲突的情况下被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com