如何从操作流程上避免git冲突

最近在项目开发中,使用git进行代码管理,项目开发使用前后端分离模式进行开发,3个前端开发和3个后端开发。有3个开发人员对git操作不熟悉,从来没有使用git经验,但对svn使用熟练,以前的项目开发都是是用svn进行代码管理,所以在使用svn时,往往会带着svn的操作习惯去使用git。例如:两个人开发同一个分支,同时pull和push,实现svn中的代码更新操作,保证这一个分支的代码同步更新。但效果并不是很好,经常会出现冲突。导致开发时,更新代码但速度太慢,甚至产生不想提交代码,或者是不得不更新代码和提交代码时才使用git操作,更新和提交代码。特别是在测试阶段,代码需要频繁但更新迭代,使用git操作不熟悉,导致的开发一定的延时,增加工作量。

代码开发之前,有进行过git操作的讲解,原理的讲解,常用命令行的讲解,IDE工具中git 操作讲解等等,但在开发时确会遇到种种问题,于是在想,如何能够使用固定的操作方式,能够尽量的去避免操作git时代码冲突,能够很快的pull 和push 更新代码。就当作是开发者并不需要知道git原理的视角,如何能够很快的掌握这一套操作流程,避免git代码冲突,快速的迭代代码。

在使用git进行代码管理的核心就是 branch 分支管理,每个人拥有自己的分支,master为稳定分支,所有人的稳定代码都提交到合并到master主分支,然后从主分支pull 最新的稳定代码到本地分支进行开发。这些看似很简单都操作,但结果并不是想象中结果。

在帮助解决问题时,最常遇到但问题时,更新代码时,git 工作空间状态不clean 干净,或者代码状态在commit ,然后在执行其他操作,导致代码更新不成功。

如果能够保证,工作空间尽量clean,每次提交合并代码后就clean 工作空间,然后在切换到master分支,pull master最新代码,然后新建一个新但分支进行开发,这样能解决很多奇怪的问题。并且在开发时,尽量以功能点为单位提交代码,而不是以模块为单位提交代码,开发一个功能后就进行提交代码操作,工作空间保持clean。

操作流程如下,在开发时可以参考这个流程更新和提交代码,如果话语执行力强,在开发前期、对git不熟悉时,可强制每个开发人员按照这个操作流程进行操作。如果对git操作、原理很熟悉后,再按照自己的操作习惯进行git操作。

使用命令行操作流程

  1. 执行命令 切换到master分支
    $ git checkout master
  2. 执行命令 拉取master最新稳定代码分支
    $ git pull master
  3. 执行命令 新建一个分支并切换到该分支
    $ git checkout -b newbranch
  4. 执行命令 将新的分支推送到远程服务器
    $ git push --set-upstream origin newbranch
  5. 代码开发中 ,开发完成,提交代码操作如下
    5.1 将不需要提交,无用的修改文件还原(尽量保持少的修改文件)
    $ git checkout -- fileName
    5.2 将本地需要提交的文件隐藏(因为如果有文件冲突,将会拉取不了主分支代码)
    $ git stash
    5.3 拉取主分支代码
    $ git pull origin master
    5.4 还原隐藏的文件
    $ git stash pop
    5.5 将需要提交的代码添加到暂存区
    $ git add fileName
    5.6 将需要提交的代码提交到本地仓库
    $ git commit -m "提交代码功能描述信息"
    5.6 将需要提交的代码提交到远程仓库
    $ git push
    5.7 在浏览器客户端新建PR请求

你可能感兴趣的:(如何从操作流程上避免git冲突)