2

我一直在为我的项目使用 git 命令。

  1. 如果我做了一个错误的提交并推入了我的分支。到那时,我该如何更新它?

  2. 如果我需要将最后三个提交复制到新分支,我该怎么办?

很快需要程序员的帮助...在此先感谢。

4

2 回答 2

2

A1。你应该resetpush -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

A2。利用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
于 2013-11-12T13:52:22.550 回答
2

要恢复错误的提交,只需使用git revert并推送它。

不过,它不会将其从项目历史记录中删除。为此,您需要在本地重写所述历史,然后推送;但是许多上游存储库会阻止这种情况,因为它会扰乱其他所有人的工作流程。

要将分支的最后三个提交复制feature到当前分支,请使用以下命令:

git cherry-pick feature~3..feature
于 2013-11-12T14:00:33.540 回答