我使用两次在本地存储库中提交了代码两次或更多次
git commit -m "message 1"
git commit -m "message 2"
git commit -m "message 3"
现在我有以下三个SHA的提交
commit-1 SHA1
commit-2 SHA2
commit-3 SHA3
但是我只想commit-2
使用git push在远程存储库中推送。
如果我运行git push,它将推送所有提交。
我还尝试了以下命令:
git push SHA2
但这也推动了所有提交。
如何仅commit-2
在远程存储库中推送它?
您需要git rebase -i
先到您的分支,才能使commit2在之后成为第一个提交origin/yourBranch
。
x--x--C1--C2--C3 (B)
|
(origin/B)
git rebase -i C1~
x--x--C2'--C1'--C3' (B)
|
(origin/B)
然后,您可以推动该提交。
参见“ git-推送特定提交”:
git push <remotename> <commit SHA>:<remotebranchname>
# Example
git push origin 712acff81033eddc90bb2b45e1e4cd031fefc50f:master
它确实将所有提交推送到您选择的提交,包括您选择的提交。
但是由于您的提交是第一个,因此只会推送该提交。
我不建议您采摘樱桃,因为它会更改所推送的提交的SHA1:当您最终要推送完整分支时,最终将出现重复的提交。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句