当上一个被推送时合并2个git commit

时间:2018-10-11 23:35:51

标签: git

当前一个提交已被推送时,如何将2个提交合并为一个?

第1步

git add file.txt
git commit
git push

第2步

git add file.txt
git commit 

4 个答案:

答案 0 :(得分:1)

尝试:

git reset --soft HEAD~2
git commit -m "Your new message"
git push --force

这是什么:

  1. 重置当前分支(移动HEAD)以进行倒数第二次提交(倒数第二次提交,由HEAD~2表示),但保留索引和工作树。
  2. 这允许重新分配这些更改并将它们提交到全新的提交中。
  3. --force允许您推送此新提交并强制覆盖。

注意

当其他人对您的原始问题发表评论时,请注意--force很可能会惹恼其他已经撤消该分支先前版本的人。您可以将这些更改“压缩”到一个新分支中并单独发布:

git reset --soft HEAD~2
git checkout -b my-new-clean-branch
git commit -m "Your new message"
git push -u origin HEAD

通过这种方式,您不需要--force

答案 1 :(得分:1)

您可以使用重新基准化来实现。用git rebase -i HEAD~2压缩最后两个提交。 然后用git push --force **强行推入。

**通常,--force-with-lease--force更可取。如果其他人要推送到分支,则您推送的--force将覆盖他们的更改。 --force-with-lease仅在没有其他人推送到该分支的情况下才强制推送。

答案 2 :(得分:1)

git add file.txt
git commit --amend
git push --force

关于--force的{​​{3}}适用。

答案 3 :(得分:0)

依次执行这些命令。

git add .

git commit --amend

git push origin <branch> -f