解决git分支合并冲突(详解)

本文详细介绍了如何在Git中合并分支,包括基本的合并操作,冲突解决步骤,以及在处理微信小程序项目时,由于编译文件冲突和.gitignore设置的特殊注意事项。
摘要由CSDN通过智能技术生成

 git合并常见命令

合并分支

在一个分支更改文件并commit,切换分支后文件并不会在另一个分支改变,所以需要合并分支

将hot-fix分支的内容合并到master

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

  1. 在master分支修改aaa.txt,并执行git add .和git commit

  1. 在hot-fix热修分支修改aaa.txt,并执行git add .和git commit

  1. 切换到master分支,合并hot-fix分支

报错冲突,自动合并失败,状态发生变化(master|MERGING)

  1. 查看状态(检测到有文件有两处修改both modified)需要手动合并代码

  1. 进入vim编辑器 vim 文件名

显示当前文件中的所有内容

<<<HEAD和====之间的内容是当前分支的修改内容

====和>>>>>>之间的内容是hot-fix修改的内容

  1. 按下键盘 i 键进入编辑模式,保留下想要保留的内容,将不需要的内容和特殊字符删去

  1. 按下键盘esc键,然后按下输入 :wq 保存并退出
  2. 将人为修改的冲突代码提交到暂存区并commit

注意commit的时候不能带文件名

  1. 查看文件内容

注意:合并的话必须开始版本一样。去看下log就明白了

当然,我们在项目中遇到的冲突不会这么简单,以uniapp微信小程序项目举例,我们在运行项目时会生成unpackage文件目录,这个时候提交总是提交一堆编译后的文件,甚至造成冲突。

这时我们需要在项目根目录下创建.gitignore文件,并配置如下:

# 忽略 uni_modules 目录
/uni_modules
/unpackage/dist

 注意:这里的/dist不能少

然后git bash

为了避免.gitignore文件忽略不掉unpackage文件,我们要先清除缓存,然后执行add和commit

 git rm -r --cached  unpackage    
 git add .
 git commit -m "update .gitignore"
 git push origin dev

最后进行分支合并,解决冲突,合并成功。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值