如何将git提交从master分支移动到另一个已存在的分支

16 浏览
0 Comments

如何将git提交从master分支移动到另一个已存在的分支

这个问题已经有了答案:

使用Git将最新的提交移动到一个新分支

在Git中,如何将一个提交从一个分支中删除并应用到另一个分支中?

我在 master 分支上提交了几个提交,应该提交到 develop 分支上。我应该使用什么Git命令将这些提交从 master 分支中移除并包含到 develop 分支中?

admin 更改状态以发布 2023年5月19日
0
0 Comments

您可以将您的提交 cherry-pickdevelop 上,并在之后交互式地 rebase 到您的 master 分支:

  1. git checkout develop
  2. git cherry-pick aabbcc
  3. git cherry-pick ddeeff
  4. ....
  5. git checkout master
  6. git rebase 123456 -i

其中 123456 是在您犯错之前的提交。这将打开一个编辑器,显示将受到 rebase 影响的每个提交。删除对应于您想要丢弃的提交的行,并退出编辑器。

0
0 Comments

如果我没记错的话,你有两个同步的分支,masterdev,在提交之前只是忘记切换分支了。

如果是这种情况,我们有:

----------------
git log in dev
xxx
yyy
...
----------------

和:

----------------
git log in master
ccc
bbb
aaa
        <---- here you forgot to switch branch
xxx
yyy
...
----------------

解决办法是:

首先要确保:

git status -s

返回空结果。

接下来,使用以下命令将你的新提交从master获取到dev

git checkout dev
git merge master

现在返回master

git checkout master

移除不必要的提交:

git reset --hard HEAD~3

~3是你想要移除的提交数。

记住:git status -s必须返回空结果,否则git reset --hard会导致数据丢失。

0