git 合并冲突情况总结

目录

 

背景:git 合并代码或分支冲突

解决方法

1.冲突情景制造

2.冲突解决

3. 总结 

3.1 代码提交正常流程 

 

 


背景:git 合并代码或分支冲突

此种情况的原因是我们提交代码前没有更新代码,导致本地仓库版本不是最新的版本。

正常的操作流程在我们每次提交代码前,要从远处代码仓库更新代码,保证本地仓库代码版本和远端代码仓库版本保存一致。

解决方法

解决方法简单来说就是修改冲突的代码

1.冲突情景制造

提前准备好分支 branch-test1 ,文件 test-code

用户A 用vi test-code 新建一个文件,git status 查看文件并没有被添加,一般出现冲突,git status 都会有提示信息,本地仓库代码版本太靠后。如下图所示

测试文件

提交文件,并推送到远程代码仓库中。

git add test-code 命令来添加修改的或新添加的文件到stage 区域中

git add .     默认添加所有修改过的文件

git status 查看下状态,

git commit -m "add new file"  -m 表示添加注释信息 "add new file"

如下图 所示git 添加文件

将文件推送到远程代码仓库

git push origin branch-test1

 此处origin 表示远程仓库,branch-test1 表示本地分支仓库

如下图

传送代码到远程仓库

前提情况准备完成

这个时候用户B  更新此文件到本地仓库,并修改部分内容提交

用户A 这个时候也修改的了test-code 文件,但是并没有先更新本地代码仓库,就提交,就会出现错误。如图

这个时候用户去合并代码,也就会报冲突的错误信息。

 

2.冲突解决

找到冲突的文件,修改冲突代码,这里冲突文件是test-code 直接修改它

打开文件可以看到<<<<<<<<HEAD  开始包括的是本地仓库的代码,<<<<<<<HEAD 之上是远程代码仓库的代码。

保留你需要的内容,去掉<<<<<<HEAD 和 ==========  

>>>>>>>>标识的内容

然后重新命令

 git add test-code

git commit -m "test-code"

git push origin branch-test1

如图

3. 总结 

3.1 代码提交正常流程 

一般来说我们在提交代码前,可以用命令git diff 来查看本地和远程代码是否一样,有不一样然后在合并到本地

git fetch 命令更新代码是不会合并代码到本地仓库,用命令git diff 来查看代码的异同

git pull 命令会将远程仓库的代码合并到本地

此案例的流程如下

git fetch origin branch-test1

此命令用于从远处下载代码到本地,但是并不合并到当前代码中,orgin 表示远处代码仓库,branch-test1 为本地代码仓库
git diff origin/branch-test1 branch-test1

当用完fetch 命令后就可以用此命令来查看不一样的地方,好确定是否将远处代码库代码合并到本地代码库中。

------- a/test-code 

  //表示是远处的下载下来的代码 文件a/test-code, 如果此处是 a/dev/null 说明指定的文件不对,此案例中

//如果是用 git diff origin branch-test1   就会有此中情况出现。

++++ b/test-code 

@@ -1,3 +1,3 @@ 

//表示差异文件的位置是在- 1,3 表示 a/test.code 文件差异的位置在第一行之前 到 第三行

+1,3 表示 b/test.code 文件中 差异位置在第一行之后到第三行

 test the confix situation
 hello world!

-input the futhure
+get the futhure
// 黑色字体是两个文件都有的内容, - 红色表示是本地文件相对于远处代码仓库缺少的内容,

+绿色表示本地文件相对于远处代码仓库多出来的内容。

//表示是本地代码仓库的代码文件
git pull origin branch-test1


 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值