热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

【git】git提交冲突解决

Git冲突解决方案在程序开发的时候,我们使用Git的时候,不得不面临着一个文件被多个人修改和提交,这样就会产生冲突,如果处
Git冲突解决方案

在程序开发的时候,我们使用Git的时候,不得不面临着一个文件被多个人修改和提交,这样就会产生冲突,如果处理不好,不仅冲突解决不了,还会造成回滚代码,或者代码覆盖,损失利益,所以我通过实践模拟,写了此规范操作,希望同事们遇到冲突无法解决时,可以帮助大家解决问题。一共十个步骤,每一步都不能简化省略。

第一步:pull一下,更新程序


方法:右键项目->Team->pull

 

 

此时会出现冲突,如上图,红框内就是冲突的文件,一份是来自本地,一份是来自服务器端。项目名称的右边有个向下的箭头,表示没有pull成功,数字代表冲突的文件数,现在先点击OK,不用管它。

第二步:同步,查看冲突代码


方法:右键项目->Team->SynchronizeWorkspace

 

 

可以看到左侧的一行目录中,红方块表示有代码冲突的文件,右箭头代表没有冲突,但是服务器端要更新的文件。没有冲突的文件可以先不管它,双击红方块,可以看到本地和服务器端的代码对比图,可以清楚看到,左侧是本地的,右侧是服务器端的。

第三步:人工修改,保持本地最新版


方法:可以直接对照服务器端进行修改。

 

 假如,我们人工修改了前三行,前三行要服务器端的代码,剩下的两行要我们本地的代码,这样让本地组成最新版的代码。Crtl+S保存,我们可以看到原来冲突的五行,变成了两行。

第四步:Add to Git Index,提交修改


方法:冲突文件右键->Add to Git Index

 

此时,红方块文件上出现了一个黑色的*,此步骤表示已经修改完了,准备好提交了。

第五步:Commit提交


方法:项目右键->Team->Commit或者使用Git Staging,我用的是Git Staging

 

此方法目的是要把修改好的文件提交到本地仓库,一定要记住,修改了什么文件就提交什么,不要全部提交,如果使用Git Staging,则拖到Staged Changes中,然后写好Commit Message,最后选择Commit。【不要选择Commit and Push,你是push不上去的,因为现在还属于冲突状态,而Commit是提交到本地仓库】。

 

因为还没push,所以此时可以看到项目右边的箭头出现了一个上箭头,可以理解为push到服务器端不成功,

第六步:再次pull一下,更新程序


方法:项目右键->Team->pull

 

此时,我们可以看到项目出现了合并项,文本框内出现的两个版本就是要合并的对象,不用管它,点击OK。

 

我们可以看到,红方块又出现了。这次是提示你要进行人工合并,步骤和第三步有所不同。

第七步:人工合并,更新到最新版

 

我们点开程序后,发现,出现了很多非程序的东西,甚至造成了文件报错,这是因为把两个版本的文件进行了合并,并且保留所有版本,于是要人工对不想要的版本进行删除。HEAD包含的是本地的版本,而====下面的是服务器端的版本。假如我们修改后,得到如下版本:

 

此时本地版本为最新版本。

第八步:Add to Git Index,确认修改


方法:冲突文件右键->Team->Add to Git Index

 

我们可以看到文件又变成了我们熟悉的黑色*。

第九步:Commit提交


方法:Git Staging或者项目右键->Team->Commit

 

此时,我们发现冲突文件已经放入Staged Changes,而Message中写的是冲突文件和合并的对象,不过不用管它,照样删除,重新写上自己想写的文字,例如“OK,测试Git提交”。

 

设置好后,点击Commit进行提交,此时,依然是提交到本地仓库。此时发现下箭头不见了,只剩下了上箭头,说明pull已经成功了。

 

第十步:push


方法:项目右键->Team->push branch

此步骤是本地仓库向远程仓库进行提交,选择push branch是要提交到指定的分支,这样做就不会造成分支选择错误。选择好提交路径,点击Next。

 

此时,没有了冲突,点击Finish就可以提交了,然后点击OK,大功告成,此时项目名称右侧的箭头也全部消失了。恭喜你,你已经把本地最新版的代码提交到Git上了。


推荐阅读
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 前言本篇为大家总结社区多人合作常见的场景和对应的git操作命令。本篇非新手教程,阅读本篇前需具备Git基础知识。Git入门教程请参考https://www ... [详细]
  • 如何在vscode中使用GitLab我同广大码友们一样,好不容易赶上了个节假日,回到家一顿安排,可屁股还没坐热就接到线上紧急BUG需要修复 ... [详细]
  • 1、获取远程供应商的repo镜像repoinit--mirror-ussh:$username$host_name:29418manifests-bxx_branch--repo ... [详细]
  • 记一次git的版本回退
    背景本地有个项目已经修改了很久(是自己的小项目不是公司的),文件挺多的,还有大量的log文件。一些资源文件是中文名,工作区修改后使用了命令gitadd.本来在.gitignore文 ... [详细]
  • 本文介绍了在git中如何对指定的commit id打标签,并解决了忘记打标签的问题。通过查找历史提交的commit id,可以在任意时间点打上标签。同时,还介绍了git中的一些常用命令和操作。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 第一种方法gitarchive-oupdate.zip$(gitdiffnew-versionold-version--name-only)此方法如果文件有删除,则 ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
  • [由零开始]2020年最新 如何在Idea中编译构建Springframework5.1.x 的源码
    构建Spring-framework-5.1.x的源码第一步:首先前往世界上最大的同性交友网站gayHab上去下载spring源码:下载地址ÿ ... [详细]
  • 补丁是一个文本文件,其内容类似于gitdiff,但与代码一样,它也有关于提交的元数据;例如提交ID,日期,提交消息等。我们可以从提交创建一个补丁,而其他人可以将它们 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
foreverfda
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有