Git 从当前分支转移提交到正确的开发分支

在多人开发的项目中,每一个需求对应一个开发分支,有时候忘记切换分支,在当前分支上做了几次提交,这时需要将这些提交转移到正确的分支,可以使用 git cherry-pick 或 git rebase。

1. git cherry-pick

1)在源分支上查找转移提交的哈希值

git checkout wrong-branch # 源分支
git log --oneline

此处,假设这些提交的哈希值是 commit1、commit2、commit3。 

2)切换回目标分支并转移提交

git checkout target-branch
git cherry-pick commit1 commit2 commit3

 3)解决可能出现的冲突

git add <conflicted-files> 
git cherry-pick --continue

4)回到原分支重置提交

git checkout wrong-branch
git reset --hard HEAD~3

2. git rebase

1)找出需要转移目标分支的提交值

git checkout wrong-branch
git log --oneline

2)切换目标分支进行 git rebase

git checkout <target-branch>
git rebase <wrong-branch> --onto <target-branch>~n <wrong-branch>

这里的 n 是想要转移的提交的次数。

3)解决可能出现的冲突

git add <conflicted-files> 
git rebase --continue

4)回到原分支重置提交

git checkout wrong-branch
git reset --hard HEAD~n

5)推送更改到远程仓库

git push --force-with-lease

总结

1、使用 git  cherry-pick,当我们只需要转移几个特定的提交,并且需要保留原始的提交哈希值。

2、使用 git rebase,当我们需要将一系列提交从源分钟平滑地转移到目标分支,并且不介意改变提交的哈希值。

在执行这些操作时,请确保完全知道它们的后果,特别是当分支已经被推送到远程仓库时。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值