我希望将两个最近提交的commit合并为一个,同时保留"first"和"second"的提交信息。我先拉取主分支,然后使用以下命令:
它会在编辑器中显示两个提交,就像这样:
然后我将这个编辑器改为:
保存更改后,我收到了以下消息:
在此之后,当我运行git push时,它会将这两个提交压缩成一个提交,并使用消息“first”。 问题在于,在远程主分支中,现在有四个提交:
我只想要一个提交,这个提交应该是合并后的提交,并且提交信息是“first”。请问我错在哪了?
git rebase -i HEAD~2 master
它会在编辑器中显示两个提交,就像这样:
pick first
pick second
然后我将这个编辑器改为:
pick first
squash second
保存更改后,我收到了以下消息:
Successfully rebased and updated refs/heads/master.
它并没有改变远程主分支的任何内容。为了应用这些更改,我使用了git push
命令,并得到了以下错误:
To https://github.com/aneelatest/GITtest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/test/GITtest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
然后我再次运行 git pull
命令,它会合并 origin master 分支,并创建另一个提交记录,提交信息如下:
Merge branch 'master' of https://github.com/aneelatest/GITtest
在此之后,当我运行git push时,它会将这两个提交压缩成一个提交,并使用消息“first”。 问题在于,在远程主分支中,现在有四个提交:
first
second
Merge branch 'master' of https://github.com/test/GITtest
first
我只想要一个提交,这个提交应该是合并后的提交,并且提交信息是“first”。请问我错在哪了?