Git--学习笔记--团队开发的实现

  1. git&gitHub实现团队开发:
    1. 项目负责人在本地建立一个项目
      1. 建立工作目录:mkdir project
      2. 进入工作目录:cd project
      3. 初始化项目文件:git init
      4. 因为我们前面使用了git config global user.name xxx,git config global user.email xxxxxx@qq.com,设置了系统用户签名(只要是在本用户登录下都有效)所以我们可以不用再为项目设置签名
      5. 当然如果我们不想使用上面的全局签名,我们也可以使用 git config user.name xxxx,git config xxxx@qq.com 为本项目单独设置签名,且项目签名会覆盖全局签名
      6. 如图所示:

    2. 项目负责人在新建的项目中创建文件
      1. vim test.txt
      2. 进入编辑,编辑成我们下个要的样子,保存退出
      3. 将文件加入到暂存区:git add test.txt  
      4. 将文件加入到本地仓库:git commit -m "这是第一次提交" test.txt
      5. 如图所示:
    3. 项目负责人在github网站,为此项目建立一个远程库
      1. 直接填写一个项目访问地址其他的默认就可以,这里我们选择和项目名一样的访问地址

      2. 项目建好后我们保存一下,项目的访问地址即可。https://github.com/你自己的用户名/项目访问地址.git

    4. 给远程仓库的访问地址起个别名

      1. 使用命令 :git remote add xxx 项目远程仓库访问地址 
      2. 使用:git remote -v 查看并确认别名
      3. 如图所示:
    5. 项目负责人将项目的push推送到远程库中

      1.  命令:git push 远程仓库访问地址别名 项目分支

      2. 如图所示:
    6. 这个时候团队的其他成员就可以克隆远程库中的project工程了
      1. 成员1:
        1. 建立自己的工作空间 :mkidr workspace_one
        2. 进入到自己的工作空间:cd workspace_one
        3. 通过项目负责人发送的远程库的访问地址进行克隆:git clone https://github.com/zzhAylm/project.gi
        4. 如图所示:

        5. 这时团队成员工作目录中会出现远程库中的项目
          1. 可通过 ll 查看当前目录中的文件
          2. 会出现远程库中的project文件
          3. cd project 进入到项目文件中
          4. ls -ll 查看项目中的文件会和上穿时一样
          5. 保留完整的完整的远程仓库项目文件,保留远程仓库访问地址别名,帮我们初始化本地仓库
    7. 成员1可以在工作目录中修改项目也可以提交到本地仓库,但是不能将本地仓库中的项目推送(push)到远程仓库,因为成员1还没有被项目负责人拉到群里。
    8. 成员1若想将本地仓库中的项目push到远程库,就需要项目负责人(远程仓库的创建者)将成员1拉到远程仓库的群中。
      1. 需要项目负责人登录gitHub,进入project项目界面,点击setting-->manage access-->invite a collaborator
      2. 输入成员的github账号,点击Add账号 to this repository
      3. github会发送邮箱给成员1,成员 以点击加入就会加入到项目负责人常见的团队中,就可以推送项目到远程库了。
    9. 成员1将本地中的修改过的项目,推送到远程库中

      1.  打开成员1的工作目录 :cd workspace_one/project

      2. 查看你远程访问地址的别名,:并这是位置自己熟悉的:git remote -v,git remote add project 远程仓库访问地址

      3. 将本地仓库的项目推送到远程仓库:git push project master

      4. 此时远程仓库中的项目将是成员1的本地仓库的文件
    10.  其他人都可以拉去远程仓库的项目:  

      1. 第一种分两步,先获取,在合并:

        1. 抓取远程仓库的内容,此时自己本地工作区内容并未发生变化:git  fetch project master

          1. (1)查看远程库中文件内容:
              1. 切换到远程仓库的master分支:git checkout project/master
              2. 查看文件内容:cat test.txt
            (2)将远程仓库的项目的分支,合并到我们本地的工作区:
              1. git merge 远程库访问地址别名/分支
              2. 查看我们工作区的文件是否变化
        2. 第二种直接抓取:
          1. 直接使用: git pulll project master等于同时使用 git fetch project master 和 git merge project/master 
        3. pull =fetch+merge,fit fetch [远程库地址别名 ]【远程分支名】,git merge [远程库地址别名]/远程分支名
    11. 团队协作冲突解决方案
      1. 冲突的产生:
        1. 项目负责人修改文件,将文件加入到暂存区,加入到本地仓库,再将文件提交到远程仓库,此时,最新版本就是现在项目负责人提交的项目
        2. 但这时候成员1不知道,他本地还是上一个版本,如果这个时候成员1在对工作空间中的文件进行修改,在加入到暂存区,提交到本地仓库,如果推送到远程库中就是出现错误,无法推送成功
        3. 如果不是基于GitHub远程库的最新版本所作的修改,不能进行修改,必须先进行拉去
        4. 拉去下来的如果进入冲突状态,则按 照‘分支冲突解决’ 操作解决即可
          1. 进行拉去:git pull project master
          2. 拉去后会进入冲突的状态:解决冲突
            1. vim test.txt :进入到有冲突的文件中,修改文件程我们需要的样子
            2. git add test.txt:将文件加入到暂存区,
            3. git commit -m "成员1解决冲突后提交的文件"  (注意提交是不需要加入文件名)
            4.  git push project master:解决冲突后推送到远程仓库
    12. 跨团队协作
      1. 团队外的成员想要帮助我们的团队,完成部分任务
      2. 团队成员将远程库访问地址发送给团队外成员
      3. 团队外成员访问远程库地址,登录自己GitHub地址,点击fork,复制一份
        •  

      4. 复制成功后在团队外成员的gitHub账号就会出先一份,和上面团队一样的工程文件,但这份文件所有人是这位执行fork的成员。
        •  

      5. 团队外成员的远程库中有了需要的工程文件:
        1. 建立自己的工作空间
        2. 执行:git clone 自己远程库名访问的地址,克隆一份到本地
          •  

        3. 就可在本地进行修改,编辑,
        4. 修改完成后加入到自己的暂存库,
        5. 在提交到本地库,
          •  

        6. 最后在推送到自己的远程库中  
        7. 远程 库中的工程文件更新完成
      6. 团队外成员将自己远程库中的项目推送会团队的远程库
        1. 点击pull request
        2.  new pull request

        3. create pull request
        4. 就会将团队外成员的远程库,推送到团队的远程库。
          1.   在这里可以与团队负责任人进行交流
        5. 等待团队负责人的同意合并,经团队外成员的项目合并到团队远程库中。
      7. 团队负责人同意并合并团队外成员的提价项目
        1. 进入github,就如peoject项目文件
        2. 点击pull request
        3. 这里会出现,外部成员提交的文件
          1. 点击项目,进入到文件预览区
            1. 进入可以回复外部成员的问题
            2. 点击file change 查看文件的修改
            3. 点击 Merge pull request,合并外部成员提交的文件 
              •   填写本次合并的日志信息,并点击 confirm merge
              • 远程库中的信息文件就会自动更新
                •  

            4. 项目负责人在将远程库中的项目拉去到本地苦中,跨团队合作完成。
              • 文件进行更新

 

 

 

posted @ 2021-05-06 14:47  张紫韩  阅读(71)  评论(0编辑  收藏  举报