git push:推送除最后一个之外的所有提交

有没有办法把我所有的本地提交到远程仓库, 除了最新的仓库? 我想保留最后一个地方,以防万一我需要修改。 谢谢。

试试这个(假设你正在使用master分支,你的远程被称为origin ):

 git push origin HEAD^:master 

HEAD^指向当前分支中最后一个提交之前的提交(最后一个提交可以被称为HEAD ),所以这个命令将这个提交(以前的所有提交)推送到远程origin/master分支。

如果您有兴趣,可以在此手册页中find有关指定修订的更多信息。

更新:我怀疑是这种情况,但无论如何,如果你的最后一个提交合并,你应该小心使用该命令。 在HEAD HEAD^合并提交HEAD^指向该提交的第一个父代, HEAD^2 – 指向其第二个父代,等等。

另一种可能性是

 git reset --soft HEAD^ 

取消提交最近的提交并将更改移至分段。 然后你可以

 git push 

它只会推动其余的提交。 这样你可以看到在推送之前将会推送什么(通过git log )。