git协同开发操作流程

  1. Fork项目公共仓库,在自己的账号下产生了一个私有仓库,自己账号下的私有仓库是公共仓库的拷贝(包括分支、代码等)。这一步骤在gitlab或者github上的项目公共仓库上操作,如图1所示。


    图 1 Fork
  2. 开发时从自己的私有仓库中pull代码,步骤如下:
    a) 克隆仓库到本地:

      git clone [email protected]:course/tiku.git
    

    b) 克隆完成后默认进入本地master分支,如果需要创建其他的本地分支,使用命令创建dev1分支,然后自动切换到dev1分支:

      git checkout -b dev1
    

    或者创建dev1分支,并关联到远程分支dev中:

     git checkout -b dev1 origin/dev
    

    c) 拉代码:git pull。如果需要切换到需要的本地分支,使用命令:git checkout 本地分支名,例如

    git checkout dev1
    
  3. 开发完成后,添加修改的文件到本地仓库中。使用命令:git add 文件名,例如

git add app/src/main/java/com/youdao/ydlive/activity/MainActivity.java

或者添加所有的文件

git add .  
  1. 提交代码。使用git commit –m 命令提交本地代码,先不要push到远程私有仓库中。
  2. 此时,在远程公共仓库的代码可能会被团队中的其他成员改变,往往会与你本地的代码产生冲突。我们需要拿到远程公共仓库(被Fork的仓库)的代码,使用
 git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git(下划线标记的是被Fork仓库的地址)
  1. 然后需要pull代码。在这里一般需要pull的是upstream的分支(假设名为dev的分支)到当前分支:
 git pull upstream dev 

a) 如果没有冲突直接 git push到私有仓库中,然后merge request就可以了。
b) 如果存在冲突,AndroidStudio会产生图2界面


图 2 产生冲突

这说明这两个文件产生了冲突,我们需要双击每一个文件(或者点击Merge按钮),进入到Merge操作页面,图3所示,对每个文件进行Merge。(注意:不要直接点右侧的Accept Yours、Accept Theirs按钮,也不要直接close)


图 3 Merge

图3中最左侧的一栏为当前本地分支的代码,最右侧为远程分支的代码,中间的一栏为合并结果,在合并时需要把该文件中所有标记出来的冲突都解决掉,这个文件才算Merge完成,依次Merge完成所有的冲突文件。解决完所有的冲突文件后,再次使用git commit命令提交所有的修改文件,然后git push到私有仓库中,然后merge request就可以了。

如果使用的是git不是AndroidStudio,产生冲突,则会出现图4


图 4 git中产生冲突

此时可以通过vim或者其他工具打开该文件,打开文件内容可以看到类似这样一个冲突:


图 5 文件中的冲突标注

<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
HEAD指向当前分支末梢的提交。
=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。>>>>>>> 之后的dev是该分支的名字。

对于简单的合并,手工编辑,然后去掉这些标记,最后像往常的提交一样先add再commit即可,最后push到远程仓库即可。

你可能感兴趣的:(git协同开发操作流程)