【问题标题】:GIT: Move changes from one branch to otherGIT:将更改从一个分支移动到另一个分支
【发布时间】:2020-06-03 02:31:36
【问题描述】:

我有 2 个分支 A 和 B。 我对 A 做了一些更改并提交了它们。 然后我对 A 进行了更多更改(错误地)。 我把他们推到 B 并承诺他们。

但现在我看到 A(旧)和 B(新)的更改正在提交。我该如何恢复这个?

【问题讨论】:

  • 查看git rebasegit reset

标签: git git-commit git-push


【解决方案1】:

如果您已推送提交,则意味着远程分支受到影响(不仅仅是您的本地分支)

您需要挑选从 B 到 A 的提交(假设只在 B 上错误地完成了一次提交):

git switch A
git cherry-pick B
git switch B
git reset --hard B~
git push --force

这将覆盖 B 历史记录,如果多个协作者正在远程存储库中工作,这可能会出现问题。
另一种选择是恢复 B HEAD,添加一个额外的提交,取消最后一个的内容。

git switch B
git revert @
git push

那里不需要 --force。

【讨论】:

    【解决方案2】:
    git checkout <branchname>
    git reset --hard <commitid>
    

    这会将所有内容恢复到原始状态。如果你的意思是别的,请详细说明。

    问候, 泽尼玛

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2014-02-22
      • 2019-03-17
      • 2011-05-06
      • 2016-06-15
      相关资源
      最近更新 更多