Git 不使用合并方式提交分支差异

本文介绍了一种特殊情况下的代码同步策略:当在Master分支紧急修复Bug后,如何将这些更改有效地同步到开发分支(Dev),确保团队成员间的代码一致性,并避免遗漏重要的更新。
场景是这样的,预生产使用master发布后,测出了Bug。然后修复时,当时比较急,就直接在master上修改,然后提交了master。事后觉得有问题,其他同事新建功能分支的话,会从dev中拉分支。如果他的功能和我的有关联,那么这从master提交的几次更改,就漏掉了,会导致他有问题,所以应该需要把这些差异项找出,然后重新提交dev。如果是普通分支,可以做分支合并。但是如果是master,要把他合到dev,感觉怪怪的,很不规范。当只是修改个别文件时,直接定位文件,把文件复制到dev重新提交就好。当文件一多,这种方式效率低,而且很容易出错。所以想了一种方法,借助TortosiseGit的差异化比较来实现,具体步骤如下:
1、切换到领先分支,右键TortosiseGit查看日志;
2、左上角选择弱后分支,选取最新一次提交,右键对比工作副本,导出差异项(删除的需要独立处理,重命名、修改、新增都可以直接导出);
3、切换到落后分支,在弱后副本合并差异项,处理删除项;
4、提交前使用查看版本分支图,对比工作副本和领先分支,再检查一遍;
5、对比结果没有问题,则提交代码。


如果你在 Git小心合并了错误的分支并且无法提交更改,可以按照以下步骤尝试解决问题: 1. **撤销合并**: 使用 `git reset` 或 `git revert` 来撤销合并。如果尚未提交,直接执行 `git reset --hard HEAD~1` 可以回到上一个版本,但是这会丢弃所有未保存的修改。 ```bash # 如果想要保留本地修改,但取消合并操作 git reset --soft HEAD~1 # 如果要保留最近一次提交,但丢弃合并结果 git reset --mixed HEAD~1 # 如果想完全撤销并回退到上一状态,包括删除已合并的改动 git reset --hard HEAD~1 ``` 2. **检查工作目录**: 确认是否有未提交的更改。如果有,先将这些更改暂存起来,再继续处理合并问题。 ```bash git add . ``` 3. **创建一个新的提交**: 如果误合并在主分支,你可以创建一个新的提交来恢复分支的状态,而是在主分支上做过多的操作。 ```bash git commit -m "Revert merge from [branch name]" ``` 4. **手动分割分支**: 如果需要,你可以手动从之前的点创建新的分支,然后将正确的代码移动过去。 5. **解决冲突** (如果有冲突): 如果合并导致文件冲突,需要手动编辑冲突文件,解决差异,并再次提交。 6. **提交和推送**: 完成上述步骤后,记得清理暂存区 (`git stash pop`),然后正常提交和推送到相应的远程分支。 请注意,每次操作都要小心,因为这些命令可能会永久性地改变你的提交历史。完成修复后,最好查看你的提交日志确认一切恢复正常。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值