如何在 git 中将提交移动到另一个分支

2025-06-07

如何在 git 中将提交移动到另一个分支

这是我今天遇到的一个小 git 问题,当我第一次学习 git 时,这个问题曾经非常可怕,但实际上只要您在本地工作,就很容易解决。

我们都遇到过这种情况——有时你会忘记自己还没有创建分支,或者更糟糕的是,你提交到了错误的功能分支,然后开始添加代码并提交。然后你才意识到自己把代码提交到了错误的功能分支,或者直接提交到了 master 分支,结果代码现在在错误的位置。

只要你还没有将更改推送到原点,撤销操作就很容易。假设我们在 feature-a 分支上创建了提交 a1b2c3d,但还没有创建 feature-b 分支。

因此,首先我们要将提交放到正确的分支上,因此让我们记下要移动的哈希,然后从 master 开始:

git checkout master

可选地(如果我们还没有分支)我们创建一个新的分支 feature-b 来放置它并进行检查:

git checkout -b feature-b

然后确保您位于正确的分支 feature-b 上(如果您刚刚创建它,则可能没有必要),然后将此提交 cherry-pick 到该分支中以将该提交添加到 feature-b:

git checkout feature-b
git cherry-pick a1b2c3d

最后,让我们将 feature-a 分支重置回上一个提交哈希值(例如 z1b2c3d)。使用 git reset --hard 将从 feature-a 分支中删除所有引用这些更改的提交以及所有更改本身,同时将该提交保留在 feature-b 分支上:

git checkout feature-a
git reset --hard z1b2c3d

您也可以对多个提交执行此操作,只需 Cherry Pick 几个提交,然后重置回您想要保留的最后一个提交即可。如果您错误地提交到了本地主分支,操作步骤也是一样的——只需 Cherry Pick 到一个分支,然后重置主分支即可。

仅当您尚未将提交推送到原点时才执行此操作。

文章来源:https://dev.to/projectpage/how-to-move-a-commit-to-another-branch-in-git-4lj4
PREV
你需要了解的关于 JavaScript 隐式强制转换的知识
NEXT
个人计算的潜力丧失