解决冲突 推送 再次重现相同的冲突

resolving conflicts an push reproduce same conflicts again

所以我整天都在研究项目中的一个新功能,完成后,我想将我的本地提交上传到存储库中。

当我试图将我的提交推送到 git 存储库时,由于某些合并冲突,该推送被拒绝。所以我浏览了文件,为每个冲突选择 "mine" 或 "theirs"。完成后,git 没有告诉我是否需要做更多事情。因为我已经解决了所有的冲突,所以我继续尝试再次推动,结果还是遇到了我之前必须解决的相同冲突。 (如果我想变得疯狂,我可以一遍又一遍地这样做)

几个月来我一直无法正常使用此工具。

拉取数据。工作工作。投入工作。推。最终合并冲突。再推。完毕。 - 这就是我期望 git 工作的方式,但情况似乎并非如此。那么我缺少哪些步骤?我该怎么做才能不花很多时间阅读像 these 这样的教程,这些教程仍然不能解决我的问题,因为它们在解决冲突后立即停止?

哦,我正在通过 PhpStorm 10 使用 git。

下次发生这种情况时,请检查 PhpStorm 的事件日志。您可能会看到来自 git 的状态消息,指示在解决所有合并冲突后,您需要手动提交在解决冲突期间受影响的文件。只有在这样做之后,您才能重新尝试推送。

我不记得在这种情况下 PhpStorm 是否会为您建议提交消息,但合适的应该是 "Merged branch 'X' into branch 'Y'"

这是您案例中的工作顺序,

git pull
# work work
git add $files
git commit
git pull --rebase
# if conflict resolve
git add $conflict_resolved_file
git rebase --continue
git push

所以,

git pull --rebase

上面这个命令是我 git 生活中最有用的命令,它节省了很多时间。

在将您的新提交推送到服务器之前,请尝试此命令,它会自动同步最新的服务器更改(使用获取 + 合并)并将您的提交放在 git 日志中的顶部。无需担心手动 pull/merge.

在以下位置查找详细信息:http://gitolite.com/git-pull--rebase