git命令合并某一个分支的某个commit到目标分支

1. 应用场景

在A分支上提交了一个commit,B分支也需要提交这个commit代码,避免人工复制代码,可以使用git命令行操作。

2. 基本用法(实例讲解)

比如,我们的仓库中有 master 和 pre-master 两个分支,现在只想将 f 提交到 master分支。
在这里插入图片描述
现在将 f 提交到master分支,其实这个f字母是打的比方,正常情况下是我们提交的commit版本号e32bb848
在这里插入图片描述

git checkout master  //切换到要合并的目标分支上
git cherry-pick xxxx(对应commit版本号)   //选择一个commit版本号,合并进当前分支
git push  //推送到目标分支远程仓库

上面操作完成后,代码库就变成了下面的样子
master分支末尾增加了提交的 f

在这里插入图片描述

3. 支持转移多个提交

在这里插入图片描述

想将 e,f 都提交到master分支

git cherry-pick xxxx xxxxx

上面命令将 e,f 提交到master分支,并生成两个对应的新提交commit版本号。

======================= 2023/4/8 =======================

注意:

  1. 当执行完 cherry-pick 之后,将会自动生成一个新的 commit 进行提交,也就是会有一个新的 commit ID。
  2. 无论是对单个 commit 进行 cherry-pick ,还是批量处理,注意一定要根据时间线,依照 commit 的先后顺序来处理,否者会有意想不到的问题。

4. Cherry-Pick 的高级用法

git cherry-pick -x <commit_id>  //增加 -x 参数,表示保留原提交的作者信息进行提交。然后在生成的新提交信息中增加一行记录,表明这个新提交是从之前的那一个提交衍生出来的

可参考:
git只合并某一个分支的某个commit
git合并指定commit——git合并某个特定的提交commit到指定的分支上

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当我们在Git合并同一个分支commit时,通是因为我们希望将多个连续的commit合并成一个更简洁的commit,以便保持代码历史的整洁性。这种情况下,我们可以使用Git提供的两种主要方法来实现。 方法一:使用交互式rebase 1. 首先,使用以下命令进入交互式rebase模式: ``` git rebase -i <commit-id> ``` 这里的`<commit-id>`是你想要合并commit的前一个commit的ID。 2. 在弹出的文本编辑器中,将需要合并commit前面的`pick`关键字改为`squash`或`s`。例如: ``` pick 1a2b3c4 Commit message 1 squash 5d6e7f8 Commit message 2 squash 9g0h1i2 Commit message 3 ``` 3. 保存并关闭编辑器。Git会自动打开另一个编辑器,供你编辑合并后的commit消息。 4. 编辑合并后的commit消息,保存并关闭编辑器。 5. Git会将这些commit合并为一个新的commit,并生成一个新的commit ID。 6. 最后,使用以下命令将本地分支推送到远程分支: ``` git push origin <branch-name> ``` 方法二:使用merge命令 1. 首先,使用以下命令切换到需要合并commit分支: ``` git checkout <branch-name> ``` 2. 然后,使用以下命令执行合并操作: ``` git merge --squash <commit-id> ``` 这里的`<commit-id>`是你想要合并commit的ID。 3. Git会将这些commit合并为一个新的commit,并生成一个新的commit ID。 4. 最后,使用以下命令将本地分支推送到远程分支: ``` git push origin <branch-name> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁锤妹妹@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值