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

时间:2016-01-12 23:49:30

标签: git merge merge-conflict-resolution

所以我整天都在为我的项目中的新功能工作,在完成之后,我想将我的本地提交上传到存储库。

当我尝试将我的提交推送到git存储库时,由于某些合并冲突,该推送被拒绝了。所以我浏览了文件,为每次冲突选择“我的”或“他们的”。完成之后,git并没有告诉我任何有关我必须做更多或更多事情的事情。由于我已经解决了所有冲突,我继续尝试再次推动,结束了我之前必须解决的相同冲突。 (如果我想变得疯狂,我可以一遍又一遍地做到这一点)

我几乎没有尝试使用这个工具几个月了。

拉数据。工作工作。提交工作。推。最终合并冲突。再推一次。完成。 - 这就是我期望git工作的方式,但似乎并非如此。那么我错过了哪些步骤?我必须做些什么才能在下班后阅读像these这样的教程仍然无法解决问题,因为他们在解决冲突后立即停止了?

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

2 个答案:

答案 0 :(得分:5)

以下是您案例中的工作顺序,

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生活中最有用的命令,节省了大量时间。

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

详情请见:http://gitolite.com/git-pull--rebase

答案 1 :(得分:0)

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

我不记得PhpStorm是否会在这种情况下为你建议一条提交信息,但是合适的一条将是“合并分支'X'到分支'Y'的行”