我已经提交了多个commit,但现在不想推送所有的commit。是否有一种方法只推送我想要的commit?
谢谢
比如说,你想要包含最近的五次提交中的三次:
git rebase -i HEAD~5 # reorder the lines in the text editor,
# leave the 'private' commits at the end
git push origin HEAD~2:master # push all but the last two
这涉及到一个临时分支,需要进行更多的工作。
git checkout -b temp HEAD~5
git cherrypick <hash1>
git cherrypick <hash2>
git cherrypick <hash3>
git push origin master
--cherry-pick
或--cherry-mark options
和git log
一起使用可以查看引用之间的实际差异(git log --cherry-pick --oneline master...origin/master
)这个命令可以帮助:
$ git push origin <thelonghash>:master
但是如果你有提交记录 A->B->C->D
并执行 git push origin C:master
,则提交记录 A,B,
和 C
将被推送到远程。因此,如果您只需要推送 C
,则需要使用 git rebase -i
重新排列提交记录,以便 C
最早。
修正错误
段落。 - sehe