git 合并远程分支(带冲突)

2024-09-07 17:48
文章标签 远程 合并 git 冲突 分支

本文主要是介绍git 合并远程分支(带冲突),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

应用场景

团队中两人同时fetch了一个分支。 第一个人修改后提交,第二个人提交就失败。失败信息如下:

  1. error: failed to push some refs to 'git@git.oschina.net:jacarrichan/jacarrichan.git'  
  2. hint: Updates were rejected because the remote contains work that you do  
  3. hint: not have locally. This is usually caused by another repository pushing  
  4. hint: to the same ref. You may want to first integrate the remote changes  
  5. hint: (e.g., 'git pull ...') before pushing again.  
  6. hint: See the 'Note about fast-forwards' in 'git push --help' for details.  

虽然使用“git push -f  ”也可以提交,但是会将remote上第一个人的改动冲掉,太暴力了,不太好。下面说的是手动合并.  


解决办法

1,获取远程分支更新,也就是第一个人提交的:

  1. git fetch origin  


2,尝试由git带来的自动合并:

  1. git merge origin/master     ##将origin/master合并到当前分支  
如果 两个分支的内容有差异 ,否则提示合并失败。

  1. Auto-merging README.md  
  2. CONFLICT (content): Merge conflict in README.md  
  3. Automatic merge failed; fix conflicts and then commit the result.  



看下当前的状态,寻找帮助信息:
  1. jacarri@JACARRI-PC /F/temp/mvn/jacarrichan (master|MERGING)  
  2. $ git status  
  3. # On branch master  
  4. # You have unmerged paths.  
  5. #   (fix conflicts and run "git commit")  
  6. #  
  7. # Unmerged paths:  
  8. #   (use "git add <file>..." to mark resolution)  
  9. #  
  10. #       both modified:      README.md  
  11. #  
  12. no changes added to commit (use "git add" and/or "git commit -a")  



现在我们再来看一下工作目录里的“README.md”文件的内容:

  1. jacarri@JACARRI-PC /F/temp/mvn/jacarrichanc (master|MERGING)  
  2. $ cat README.md  
  3. #jacarrichan  
  4.   
  5.   
  6.   
  7.   
  8. Only for ochina git test.  
  9.   
  10.   
  11. <<<<<<< HEAD  
  12. 这是第二个人提交的......................  
  13. =======  
  14. 这是第一个人提交的  
  15. >>>>>>> origin/master  
  16.   
  17.   
  18. ![我的博客](http://service.t.sina.com.cn/widget/qmd/1597668397/99810a10/1.png ""  
  19. )  

“<<<<<<< HEAD“下面就是当前版本里的内容;而“=======”之下,“>>>>>>>origin/master”之上则表示测试分支里与之对应的有冲突的容。修复冲突时我们要做的,一般就是把“ <<<<<<< HEAD”,“=======”和“ >>>>>>> test”这些东东先去掉,然后把代码改成我们想要的内容。


需安装配置BeyondCompare,下载地址 

  1. [diff]     
  2.     tool = bc3  
  3. [difftool "bc3"]     
  4.     cmd = \"D:/application/BeyondCompare/BCompare.exe\" \"$LOCAL\" \"$REMOTE\"    
  5.     trustExitCode = true      
  6. [difftool]     
  7.     prompt = false     
  8. [merge]  
  9.     tool = bc4     
  10. [mergetool "bc4"]     
  11.     cmd = \"D:/application/BeyondCompare/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"     
  12.     trustExitCode = true  


手动合并

  1. jacarri@JACARRI-PC /F/temp/mvn/jacarrichanc (master|MERGING)  
  2. $ git mergetool  README.md  
  3. Merging:  
  4. README.md  
  5.   
  6. Normal merge conflict for 'README.md':  
  7.   {local}: modified file  
  8.   {remote}: modified file  
  9. Hit return to start merge resolution tool (bc4):  

备注:图片上方的三个深蓝色圈住的和配置文件中的这个对应“ \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"”.



 按照上述规则,我选择把双方的内容都添加进来,你采纳第一个或者另外写别的内容都可以。  保存后重新提交就顺利.

这篇关于git 合并远程分支(带冲突)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145736

相关文章

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

Python视频剪辑合并操作的实现示例

《Python视频剪辑合并操作的实现示例》很多人在创作视频时都需要进行剪辑,本文主要介绍了Python视频剪辑合并操作的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录介绍安装FFmpegWindowsMACOS安装MoviePy剪切视频合并视频转换视频结论介绍

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的