gitlab团队协作开发

转自 https://blog.csdn.net/predict_wise/article/details/77898577

由于之前总是自己的项目自己开发维护,不涉及多人协作,因此对于git的使用始终处于比较初级的阶段,很少用git的一些较为高级的用法。最近涉及多人协作开发,在此记录一下git的操作流程。

本文使用的代码版本控制平台为实验室自建的gitlab,在界面风格上稍微和github有些区别,但总体都是一样的。

这里主要记录两种团队协作操作git的方式:

  • 开发人员使用fork
  • 开发人员不使用fork

使用fork

  • 项目负责人在gitlab上新建一个项目,并分享URL给开发人员
  • 开发人员在负责人的gitlab项目页面上点击“fork”按钮,将此项目fork到自己的gitlab上,这相当于是从负责人那拷贝了一份项目副本,无论开发人员如何修改代码都不会影响负责人那master分支上的代码
  • 然后开发人员可以根据自己的项目分工,像对待普通项目一样做clone、add、commit、push等操作
  • 如果开发人员人为一个小模块做好了,可以点击“pull request”按钮,向负责人发送代码合并请求,要合并的代码文件也会以列表的形式同时发送给负责人,此时负责人会看到开发人员的请求,经审核如果代码没问题则会合并模块,并向开发人员发送确认合并的通知

有的时候项目负责人也在开发,在不断更新项目,如何也让自己Github上的也跟着同步,这里参考这篇博文
http://blog.csdn.net/sjt19910311/article/details/50596714

不使用fork

  1. 负责人为开发人员分别创建开发分支(namedev_branch)

  • 项目负责人在gitlab上新建一个项目,并为每一个开发人员创建一个开发分支(namedev_branch)
  • 开发人员clone项目之后,经git branch检查发现本地只有master分支,因此也需要把属于自己的开发分支也一起获取下来

$ git fetch origin namedev_branch:namedev_branch
//拉取远程的一个叫namedev_branch的分支,并在本地创建一个叫namedev_branch的分支和远程的分支匹配
 
 
    • 切换到namedev_branch分支

    • $ git checkout namedev_branch
       
       
      • 之后的操作如同对待普通项目一样

      • $ git add hello.py
        $ git commit -m "add hello.py"
        $ git push -u origin namedev_branch //需要注意,是push到远程的namedev_branch分支
         
         
        • 负责人不为开发人员分别创建开发分支
          虽然项目负责人不分别为开发人员创建分支,但是需要把他们添加到一个team中,否则开发人员在向项目push自己的开发分支时遇到权限错误

          • 开发人员在把项目clone之后需要为自己新建一个开发分支(namedev_branch),因为经由git branch查看发现本地只有master分支

          $ git branch namedev_branch  //新建分支
          $ git checkout namedev_branch  //切换到开发分支
          $ git push origin namedev_branch  //将新建的开发分支push到远程项目上
           
           
          • 之后的操作如同对待普通项目一样(是在namedev_branch分支进行操作)

          • $ git add hello.py
            $ git commit -m "add hello.py"
            $ git push -u origin namedev_branch //需要注意,是push到远程的namedev_branch分支
             
             

              之后,项目负责人可以在项目的gitlab主页上看到每个开发人员的工作进度,并考虑何时merge开发人员的分支到master分支上以完善项目


              UPDATE

              如何更新已经fork的代码
              • 首先要先确定一下是否建立了主repo的远程源:

                git remote -v
                   
                   
                • 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源:

                git remote add upstream https://github.com/被fork的仓库.git
                git remote -v //能看到upstream了
                 
                 
                • fetch源分支的新版本到本地

                • git fetch upstream
                   
                   
                  • 合并本地两个版本的代码:

                  • git merge upstream/master
                     
                     
                    • 将在本地合并后的代码push到自己的github上去,以更新github上fork的仓库

                    • git push origin master
                       
                       
                      评论
                      添加红包

                      请填写红包祝福语或标题

                      红包个数最小为10个

                      红包金额最低5元

                      当前余额3.43前往充值 >
                      需支付:10.00
                      成就一亿技术人!
                      领取后你会自动成为博主和红包主的粉丝 规则
                      hope_wisdom
                      发出的红包
                      实付
                      使用余额支付
                      点击重新获取
                      扫码支付
                      钱包余额 0

                      抵扣说明:

                      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                      余额充值