在我推送Git之后如何合并提交?

时间:2011-08-28 11:41:49

标签: git merge github push commit

我是git的新手,我做了一些更改,git告诉我我需要先拉,所以我拉了但是我的编辑器没有显示修改后的版本,所以我再次提出冲突,我解决了冲突和再次承诺。现在我有3个提交! (虽然我认为第一个不应该在那里)

问题是我每次提交后都会推送。那么有没有办法合并那些被推送的提交?

您能否提供一步一步的解释?我之前使用过svn和cvs,但我对git很新。

2 个答案:

答案 0 :(得分:0)

您所描述的情况似乎不太可能,因为在冲突时尝试提交会导致以下错误:

fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.

如果您无法提交冲突,那么运行git push实际上不会推动更改。

您可以运行以下命令来查看实际发生的提交

git log --patch --color

答案 1 :(得分:0)

如果我正确理解你的问题,这应该做你想做的事情

您可以将所有这三个提交与git rebase -i HEAD~3一起压缩。这基本上摆脱你的不良提交,你最后一个内容将是最终内容。

运行命令时,会弹出一个编辑器。替换pick in the second and third line with壁球。您需要再次使用-f标记。

如果它们是你的最后三次提交,这将有效。如果他们远远落后于此。你需要再往前退一步,只需将squash放在你要压缩的两个提交上。