我正在对我的机器上的一个项目进行更改,并在此过程中进行了几次提交。但是,当推送到远程服务器时,我希望发送所有更改但只有一个日志条目。
也就是说,在本地我有commit1
, commit2
, commitN
. 当我将它推送到远程服务器时,我只希望它显示commitN
历史记录,但仍会推送所有更改。
那可能吗?
您可以使用一个交互式 rebase 来压缩提交。
git rebase -i <commit>
推送时要包含的最后一次提交的父级在哪里。然后,运行此命令将让您选择要将哪些提交压缩为一个。假设您要压缩的提交是您将执行此操作的最后 10 次提交
git rebase -i HEAD~10
git rebase -i <hash-of-the-last-commit-before-commit1>
编辑器将打开一个列表,如:
pick commit1
pick commit2
pick commitN
以这种方式编辑行:
reword commit1
fixup commit2
fixup commitN
保存并退出您的编辑器。
编辑器将再次打开 - 只需输入所需的最终提交名称。
现在您可以将单个提交推送到服务器。