我一直在为我的项目使用 git 命令。
如果我做了一个错误的提交并推入了我的分支。到那时,我该如何更新它?
如果我需要将最后三个提交复制到新分支,我该怎么办?
很快需要程序员的帮助...在此先感谢。
reset
和push -f
。现在的情况。
A - B - C - D ← HEAD and wrong commit
你应该回滚 HEAD。
git reset --hard HEAD~1
现在
A - B - C ← HEAD
最后,您应该强制推送到您的远程存储库。
git push origin your_branch -f
cherry-pick
现在的情况。
need to copy
|---------|
A - B - C - D - E← old branch
\
F - G - H ← new branch
cherry-pick
在您的新分支上使用
git cherry-pick <C commit hash>
git cherry-pick <D commit hash>
git cherry-pick <E commit hash>
现在
A - B - C - D - E← old branch
\
F - G - H - C' - D' - E'← new branch
要恢复错误的提交,只需使用git revert
并推送它。
不过,它不会将其从项目历史记录中删除。为此,您需要在本地重写所述历史,然后推送;但是许多上游存储库会阻止这种情况,因为它会扰乱其他所有人的工作流程。
要将分支的最后三个提交复制feature
到当前分支,请使用以下命令:
git cherry-pick feature~3..feature