要通过指定的提交推高 ,你可以这样写:
git push <remotename> <commit SHA>:<remotebranchname>
提供<remotebranchname>
已存在于遥控器上。 (如果没有,你可以使用git push <remotename> <commit SHA>:refs/heads/<remotebranchname>
来自动创建它。)
如果要在不推送先前提交的情况下推送提交,则应首先使用git rebase -i
重新提交提交。
尝试了建议的解决方案:
git push <remotename> <commit SHA>:<remotebranchname>
像这样:
git push origin 712acff81033eddc90bb2b45e1e4cd031fefc50f:master
在我的情况下,master 提前 5 次提交,我只是想推送我的最后一次提交,但上面最终将我的所有更改推送到包括命名提交。在我看来,樱桃挑选方法可能是这个用例的更好方法。
其他答案缺少重新排序的描述。
git push <remotename> <commit SHA>:<remotebranchname>
将推送单个提交,但该提交必须是您的本地,非推送,提交的 OLDEST,不要与 top,first 或 tip 提交混淆,在我看来这些都是模棱两可的描述。提交需要最早的提交,即距离您最近的提交最远的提交。如果它不是最早的提交,则将推送从最旧的,本地的,未推送的 SHA 到指定的 SHA 的所有提交。要重新排序提交使用:
git rebase -i HEAD~xxx
重新排序提交后,您可以安全地将其推送到远程存储库。
总结一下,我用过
git rebase -i HEAD~<number of commits to SHA>
git push origin <post-rebase SHA>:master
将单个提交推送到我的远程主分支。
参考文献:
也可以看看: