Git工具 conflict冲突问题解决方案
作者:海绵般汲取 发布时间:2023-07-27 10:27:30
这篇文章需要对git具有一定的了解,并且知道如何安装git工具(其实就是上git官网下载个文件,安装)
git这种版本控制工具有什么好处
第一个,方便可以多人协同开发同一个项目或系统
第二个,当你系统开发到一个稳定版本后为了开发新的功能,肯定要把开发好后的系统代码进行备份保存起来,不然万一那个不懂事的小程序猿删的代码你咋整呢
而代码仓库可以为你解决这个问题,而使用git仓库的项目,就需要用到git工具
版本控制工具git或svn使用方式来说,一种命令行,一个是使用可视化工具进行操作。
git的可视化工具有很多,大部分原理都想通。(间接调用命令行进行操作。)
简单的clonerepository克隆仓库,openlocal repository打开本地仓库,什么的就不说的
这里以SourceTree界面来举例
一般我们从远程仓库上克隆代码到本地仓库后,我们的操作一般就是,
1、pull 拉取远程仓库上的代码
2、修改本地代码,
3、然后commit,commit时候选择你要提交的你修改过的文件填写提交的作者,日期,说明信息。这样你本地仓库代码已经提交完成了,
4、将本地仓库和远程仓库进行同步,使用push命令推送到远程仓库
上面的四个步骤是理想化状态下的一般步骤,当单人使用的时候不会出错,两个人可能也不会有问题,但随着人数增多,肯定会遇倒这样那样的问题。
问题情况1:如从远端拉取到正式版本后,我增加的文件,或修改的代码,然后在将修改或增加的代码同步到远端,但在我push之前,有另一个人也从远端拉取得代码
并且更新完成代码,并push到远程仓库的。这个时候我commit没有问题,但是我push不成功,还有一个就是我也正在修改代码,然后不能将代码pull下来
问题原因:很明显,远程仓库已经被修改的,所以不能推送我们的更改
截图看的更清晰:
我在不同文件夹下拉取的相同的远程仓库一个是在D:/Source_code/MergeRepo 另一个在D:/Source_code/New/MergeRepo
我先将其中一个仓库增加一个文件 “测试push文件时冲突问题.txt”
常规操作,commit push,完成
我们可以看到文件已经上传到远程分支上的
再接着看另一个本地仓库,可以看到下图,pull按钮有一个提示,远程仓库已经更新的,但这个时候我们可能还在开发新的功能,
可能这个工具没有显示远程有更新可以拉取,我们想要将写好的功能提交到远程仓库
执行,commit ,push,然后就,,出现错误,远程仓库已经更新的,不能推送。
这需要先将远程代码pull下来,但是可能也拉取不成功
因为新功能会存在修改我们拉取下来的项目的文件,所以我们当前就不能将远程更新的代码拉取下来,会提示我们先stashsave我们修改过的代码,
然后再pull更新远程代码,最后再将我们存放到栈里面的开发新功能代码修改弹出栈,stashpop
解决办法:所以我们要先把远程仓库的代码拉取下来,但是会存在拉取不下来的问题。
我们需要将我们的更改存放到栈内存中,也就是使用stash save命令,然后在拉取服务器端更新过的代码,然后在使用stashpop命令将我们之前的修改取出来合并到
本地代码仓库中去。
当然上面的stash pop弹出改变的内容时会有conflict问题出现,我们找到发生冲突的文件,讲我们需要的文件内容保留下来就可以啦
(以后有截图的时候再详细讲)
最后冲突解决完成的,我们再按照常规流程走,commit,push
情况2:需要在正式发布好的产品上添加新的功能,不可能在主分支上开发新功能,比如我们正式版本是在master分支上,
解决方法:我们就需要在复制一份本地仓库中的master版本,取新的
名字,在这个新的名字分支上开发新的功能,然后我们将新的版本提交到我们远程仓库分支上上。
提交完成后,我们将本地仓库切换到master分支,在选中我们开发的新功能分支,右键点击merge合并选中的分支到当前分支中。
到这里,新功能开发任务就完成啦,合并到master分支,主分支也拥有这个新开发的功能模块的
来源:https://www.cnblogs.com/gne-hwz/p/9086098.html


猜你喜欢
- 前言:图片选择器基本上是每个App必备的东西,用公认好的第三方也可以,但是自己写的改起来方便,用起来顺手,而且这东西想想可能没动手之前想想比
- 对于获取了一大堆字符串但是又不想要里面的html标签怎么办?特别是像博客园这个富文本框中,可以带样式的,取出来的文章内容也是带样式的。但是在
- 1、汉字转十六进制UNICODE编码字符串 /// <summary> /// //// /// <
- 本文参考于《深入理解Java虚拟机》内存分配与回收策略Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存
- 本文实例讲述了C#二进制序列化的方法。分享给大家供大家参考。具体如下:using System.Runtime.Serialization.
- 本文实例讲述了C#实现图形位置组合转换的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.C
- Android jni调试打印char阵列的实例详解前言:在android开发中,用jni有时候需要打印某一个字符串的二进制格式输出,比较友
- 前言解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构
- 我们在C#编程中常见的信息提示框(MessageBox)是微软NET自带的一个用于弹出警告、错误或者讯息一类的“模式”对话框。此类对话框一旦
- 一、线程优先级的介绍java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。java 中有
- 目录什么是Spring的占位符?Spring什么时候去解析并占位符什么是Spring的占位符?在以前的Spring Xml配置中我们可能会有
- 在C#中,一共有38个常用的运用符,根据它们所执行运算的特点和它们的优先级,为了便于记忆,我将它们归为七个等级:1、单元运算符和括号。2、常
- 目录前言一、Apache poi1.1 首先添加依赖1.2 导出excel1.2.1 HSSF方式导出(.xls方式)1.2.2 XSSF方
- 近来复习数据结构,自己动手实现了栈。栈是一种限制插入和删除只能在一个位置上的表。最基本的操作是进栈和出栈,因此,又被叫作“先进后出”表。首先
- 个人觉得eclipse提示较少,所以今天就写了这篇文章。使用Intellij IDEA 2018实现Hello,World的时候我遇到了一些
- 使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2
- 近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路。最终,我选定了轻量级
- 拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程
- 本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下效果展示 还是看代码实在,直接
- 今天给大家讲讲 SpringBoot 框架 整合 Elasticsearch 实现海量级数据搜索。一、简介在上篇ElasticSe