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

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

MySQL进行分片合并的实现步骤

《MySQL进行分片合并的实现步骤》分片合并是指在分布式数据库系统中,将不同分片上的查询结果进行整合,以获得完整的查询结果,下面就来具体介绍一下,感兴趣的可以了解一下... 目录环境准备项目依赖数据源配置分片上下文分片查询和合并代码实现1. 查询单条记录2. 跨分片查询和合并测试结论分片合并(Shardin

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD