这篇文章需要对git具有一定的了解,并且知道如何安装git工具(其实就是上git官网下载个文件,安装)

git这种版本控制工具有什么好处

  第一个,方便可以多人协同开发同一个项目或系统

  第二个,当你系统开发到一个稳定版本后为了开发新的功能,肯定要把开发好后的系统代码进行备份保存起来,不然万一那个不懂事的小程序猿删的代码你咋整呢

而代码仓库可以为你解决这个问题,而使用git仓库的项目,就需要用到git工具

版本控制工具git或svn使用方式来说,一种命令行,一个是使用可视化工具进行操作。

git的可视化工具有很多,大部分原理都想通。(间接调用命令行进行操作。)

简单的clone repository 克隆仓库,open local 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下来,但是可能也拉取不成功

因为新功能会存在修改我们拉取下来的项目的文件,所以我们当前就不能将远程更新的代码拉取下来,会提示我们先stash save我们修改过的代码,

然后再pull更新远程代码,最后再将我们存放到栈里面的开发新功能代码修改弹出栈,stash pop

  解决办法:所以我们要先把远程仓库的代码拉取下来,但是会存在拉取不下来的问题。

      我们需要将我们的更改存放到栈内存中,也就是使用stash save命令,然后在拉取服务器端更新过的代码,然后在使用stash pop命令将我们之前的修改取出来合并到

      本地代码仓库中去。

      当然上面的stash pop弹出改变的内容时会有conflict问题出现,我们找到发生冲突的文件,讲我们需要的文件内容保留下来就可以啦

      (以后有截图的时候再详细讲)

      最后冲突解决完成的,我们再按照常规流程走,commit,push

情况2:需要在正式发布好的产品上添加新的功能,不可能在主分支上开发新功能,比如我们正式版本是在master分支上,

    

  解决方法:我们就需要在复制一份本地仓库中的master版本,取新的

      名字,在这个新的名字分支上开发新的功能,然后我们将新的版本提交到我们远程仓库分支上上。

      提交完成后,我们将本地仓库切换到master分支,在选中我们开发的新功能分支,右键点击merge合并选中的分支到当前分支中。

      到这里,新功能开发任务就完成啦,合并到master分支,主分支也拥有这个新开发的功能模块的

后面待续。。。

git工具,conflict冲突解决方法的更多相关文章

  1. 转:git合并冲突解决方法

    git合并冲突解决方法 1.git merge冲突了,根据提示找到冲突的文件,解决冲突 如果文件有冲突,那么会有类似的标记 2.修改完之后,执行git add 冲突文件名 3.git commit注意 ...

  2. Git 分支管理和冲突解决

    Git 分支管理和冲突解决 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前面会有星号. git branch newname 在当前检出分支上新建分支 ...

  3. Git 学习笔记--Git下的冲突解决

    冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突. 而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突. git pull会自动m ...

  4. Git下的冲突解决【转】

    本文转载自:http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html 冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是m ...

  5. Git分支合并冲突解决(续)

    接Git分支合并冲突解决,在使用rebase合并冲突情况下,如果不小心,执行完add后执行了commit,此时本地仓库HEAD处于游离态(即HEAD指向未知的分支),如何解决? 解决方法 (1)此时, ...

  6. IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏

    IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...

  7. IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法

    IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...

  8. 03:git常见报错解决方法

    1.1 git常见报错解决方法 1.warning: LF will be replaced by CRLF in .idea/workspace.xml. 参考博客:https://www.cnbl ...

  9. apache与IIS共用80端口冲突解决方法

    如果同一台电脑安装了apache和iis,会提示80端口冲突,如何解决apache与iis 80端口冲突的问题呢,并且同时使用apache和iis 将apache设为使用80端口,IIS使用其它端口, ...

随机推荐

  1. C++总的const使用说明

    C++总的const使用说明 1. const修饰类成员变量 程序: #include <iostream> using namespace std; class A { public: ...

  2. hdu 5067 遍历指定点集最小时间

    http://acm.hdu.edu.cn/showproblem.php?pid=5067 贴题解 由于Harry的dig machine是无限大的,而装载石头和卸载石头是不费时间的,所以问题可以转 ...

  3. hdu 2780 Su-Su-Sudoku(DFS数独)

    题目链接:hdu2780 #include<stdio.h> #include<string.h> #include<queue> #include<math ...

  4. AME

    http://wenku.baidu.com/view/a9dbebc789eb172ded63b7f4.htmlhttp://wenku.baidu.com/view/dde6eb040740be1 ...

  5. zookeeper集群崩溃处理

    今天在私有化项目中遇到如下问题: 1.客户反馈用户登录返回303 2.登录服务器查看是大量的log将服务器磁盘空间占用殆尽,导致所有服务进程仍旧存在但是监听端口失败,服务不可用 3.清理日志文件 4. ...

  6. java多线程 —— 两种实际应用场景模拟

    最近做的偏向并发了,因为以后消息会众多,所以,jms等多个线程操作数据的时候,对共享变量,这些要很注意,以防止发生线程不安全的情况. (一) 先说说第一个,模拟对信息的发送和接收.场景是这样的: 就像 ...

  7. 设计模式之工厂模式(Factory Pattern)

    一.什么是工厂模式? 1.“简单工厂模式”,Simple Factory Pattern 也就是常用的在Factory类中定义静态方法负责new对象的方式. 摘要中提到过“严格地说,这种被称为“简单工 ...

  8. JEECG(一) 如何配置自己的业务包

    使用自己的业务包开发,不在com.jeecg业务包下 请首先阅读这篇文章[官网] http://www.jeecg.org/forum.php?mod=viewthread&tid=1832& ...

  9. 利用bootstrap上传视频文件,mvc做后台处理

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  10. [Uliweb]-URL映射

    URL映射¶ Uliweb使用Werkzeug的Routing来进行URL的处理.当你使用manage.py的makeapp命令生成一个新 的App时,它会自动生成views.py文件,其中会自动从u ...