在我已经推送到Git之后,如何合并提交?

1l5u6lss  于 2023-06-04  发布在  Git
关注(0)|答案(2)|浏览(174)

我是git的新手,我提交了一些修改,git告诉我需要先pull,所以我pull了,但我的编辑器没有显示修改后的版本,所以我再次提交,但有冲突,我解决了冲突,然后再次提交。现在我有三个承诺!(虽然我认为第一个不应该在那里)
问题是我每次提交后都推。那么有没有一种方法可以合并那些推送的提交呢?
你能提供一个逐步的解释吗?我以前用过svn和cvs,但我对git还是个新手

mdfafbf1

mdfafbf11#

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

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
webghufk

webghufk2#

如果我正确理解了你的问题,这应该是你想要的:
您可以使用git rebase -i HEAD~3将这三个提交压缩在一起。这基本上会 * 摆脱 * 你的错误提交,最后一次提交的内容将是最终的内容。
当您运行该命令时,将弹出一个编辑器。将第二行和第三行中的pick替换为squash。然后,您需要再次按下-f标志。
如果它们是你的最后三个提交,这将起作用。如果他们比这更落后。你需要更进一步地变基,并且只把squash放在你想要压缩的两个提交上。

相关问题