当git只想合并部分部分commit

本文讲述了在Git中处理开发和生产环境分支需求差异的问题,介绍如何从B分支选取特定commit并将其合并到A分支,以便于管理和控制版本发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

我们在工作学习中一把会用到git。可能会经常遇到一个问题:比如生产环境发版用到了A分支,但是开发环境用到了B分支,我们往往需要先经过开发环境的测试验证才会发到生产环境,但是在此期间可能会有其他需求也在B分支上但是并不想发布到生产环境,这时候就需要我们把当前commit或者某几个commit剥离出来合并到A分支上。

二、实现

目标: 把B分支上的部分代码合并到A分支

1、首先我们需要把代码先push到B分支上(略..)

2、然后我们需要切换到A分支上(同时记得pull一下,以防有冲突)

git checkout A

3、把指定commit的合并到A分支上

git cherry-pick 977e2b7fcc93e9edd266620a6872a5b4250c5468 //977e2b7fcc93e9edd266620a6872a5b4250c5468 为git上的commit id

4、把代码推到A分支

git push origin A

Git中,如果你想要修改之前的提交(比如添加遗漏的内容、修正错误或者更改提交消息),可以按照以下步骤操作: 1. **检查出历史**: 使用`git log`命令查看你需要修改的提交记录,找到你想编辑的commit ID。 2. **检出特定版本**: 可能需要先切换到那个提交的前一个版本,例如如果你想基于上一个提交修改,可以这样做: ``` git checkout HEAD^ ``` 3. **修改文件**: 在对应的分支下,对需要修改的文件进行编辑。 4. **暂存修改**: 添加修改后的内容到暂存区: ``` git add . ``` 5. **创建新提交**: 如果你想替换原有的提交,可以将当前工作目录的状态作为新的提交: ``` git commit -m "New commit message" ``` 如果你只想更新消息而不改变提交内容,可以用`--amend`选项来添加修订信息: ``` git commit --amend --no-edit # 只修改消息 git commit --amend # 修改消息并打开编辑器(默认) ``` 6. **合并分支**: 如果你需要保留原来的提交,并将新提交放在其后面,你可以先创建一个新的提交: ``` git rebase -i HEAD~2 # 替换第二个最近的提交 ``` 这会打开一个文本编辑器,编辑列表中的提交,通常选择把你要修改的那行标记为`pick`改为`edit`,然后保存并退出。这时Git会让你进入交互模式,编辑完就直接按`e`键,接着修改提交信息。 7. **完成替换或删除旧提交**: 编辑完成后,按`S`键保存,然后选择`reword`(改名)或`fixup`(合并到前一提交)来修改历史,或选`drop`来删除该提交(谨慎使用)。 8. **提交更改**: 按回车键,然后按提示操作,最后输入`exit`关闭编辑器,就会看到新提交出现在原来位置上方。 记得在处理敏感的提交时一定要小心,因为这可能会导致提交历史变得混乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值