Git--学习笔记--团队开发的实现
- git&gitHub实现团队开发:
- 项目负责人在本地建立一个项目
- 建立工作目录:mkdir project
- 进入工作目录:cd project
- 初始化项目文件:git init
- 因为我们前面使用了git config global user.name xxx,git config global user.email xxxxxx@qq.com,设置了系统用户签名(只要是在本用户登录下都有效)所以我们可以不用再为项目设置签名
- 当然如果我们不想使用上面的全局签名,我们也可以使用 git config user.name xxxx,git config xxxx@qq.com 为本项目单独设置签名,且项目签名会覆盖全局签名
-
如图所示:
- 项目负责人在新建的项目中创建文件
- vim test.txt
- 进入编辑,编辑成我们下个要的样子,保存退出
- 将文件加入到暂存区:git add test.txt
- 将文件加入到本地仓库:git commit -m "这是第一次提交" test.txt
- 如图所示:
- 项目负责人在github网站,为此项目建立一个远程库
-
直接填写一个项目访问地址其他的默认就可以,这里我们选择和项目名一样的访问地址
-
项目建好后我们保存一下,项目的访问地址即可。https://github.com/你自己的用户名/项目访问地址.git
-
-
给远程仓库的访问地址起个别名
- 使用命令 :git remote add xxx 项目远程仓库访问地址
- 使用:git remote -v 查看并确认别名
- 如图所示:
-
项目负责人将项目的push推送到远程库中
-
命令:git push 远程仓库访问地址别名 项目分支
- 如图所示:
-
- 这个时候团队的其他成员就可以克隆远程库中的project工程了
- 成员1:
- 建立自己的工作空间 :mkidr workspace_one
- 进入到自己的工作空间:cd workspace_one
- 通过项目负责人发送的远程库的访问地址进行克隆:git clone https://github.com/zzhAylm/project.gi
-
如图所示:
- 这时团队成员工作目录中会出现远程库中的项目
- 可通过 ll 查看当前目录中的文件
- 会出现远程库中的project文件
- cd project 进入到项目文件中
- ls -ll 查看项目中的文件会和上穿时一样
- 保留完整的完整的远程仓库项目文件,保留远程仓库访问地址别名,帮我们初始化本地仓库
- 成员1:
- 成员1可以在工作目录中修改项目也可以提交到本地仓库,但是不能将本地仓库中的项目推送(push)到远程仓库,因为成员1还没有被项目负责人拉到群里。
- 成员1若想将本地仓库中的项目push到远程库,就需要项目负责人(远程仓库的创建者)将成员1拉到远程仓库的群中。
- 需要项目负责人登录gitHub,进入project项目界面,点击setting-->manage access-->invite a collaborator
- 输入成员的github账号,点击Add账号 to this repository
- github会发送邮箱给成员1,成员 以点击加入就会加入到项目负责人常见的团队中,就可以推送项目到远程库了。
-
成员1将本地中的修改过的项目,推送到远程库中
-
打开成员1的工作目录 :cd workspace_one/project
-
查看你远程访问地址的别名,:并这是位置自己熟悉的:git remote -v,git remote add project 远程仓库访问地址
-
将本地仓库的项目推送到远程仓库:git push project master
- 此时远程仓库中的项目将是成员1的本地仓库的文件
-
-
其他人都可以拉去远程仓库的项目:
-
第一种分两步,先获取,在合并:
-
抓取远程仓库的内容,此时自己本地工作区内容并未发生变化:git fetch project master
- (1)查看远程库中文件内容:
- 切换到远程仓库的master分支:git checkout project/master
- 查看文件内容:cat test.txt
- git merge 远程库访问地址别名/分支
- 查看我们工作区的文件是否变化
- 第二种直接抓取:
- 直接使用: git pulll project master等于同时使用 git fetch project master 和 git merge project/master
- pull =fetch+merge,fit fetch [远程库地址别名 ]【远程分支名】,git merge [远程库地址别名]/远程分支名
-
-
- 团队协作冲突解决方案
- 冲突的产生:
- 项目负责人修改文件,将文件加入到暂存区,加入到本地仓库,再将文件提交到远程仓库,此时,最新版本就是现在项目负责人提交的项目
- 但这时候成员1不知道,他本地还是上一个版本,如果这个时候成员1在对工作空间中的文件进行修改,在加入到暂存区,提交到本地仓库,如果推送到远程库中就是出现错误,无法推送成功
- 如果不是基于GitHub远程库的最新版本所作的修改,不能进行修改,必须先进行拉去
- 拉去下来的如果进入冲突状态,则按 照‘分支冲突解决’ 操作解决即可
- 进行拉去:git pull project master
- 拉去后会进入冲突的状态:解决冲突
- vim test.txt :进入到有冲突的文件中,修改文件程我们需要的样子
- git add test.txt:将文件加入到暂存区,
- git commit -m "成员1解决冲突后提交的文件" (注意提交是不需要加入文件名)
- git push project master:解决冲突后推送到远程仓库
- 进行拉去:git pull project master
- 项目负责人修改文件,将文件加入到暂存区,加入到本地仓库,再将文件提交到远程仓库,此时,最新版本就是现在项目负责人提交的项目
- 冲突的产生:
- 跨团队协作
- 团队外的成员想要帮助我们的团队,完成部分任务
- 团队成员将远程库访问地址发送给团队外成员
- 团队外成员访问远程库地址,登录自己GitHub地址,点击fork,复制一份
-
- 复制成功后在团队外成员的gitHub账号就会出先一份,和上面团队一样的工程文件,但这份文件所有人是这位执行fork的成员。
-
- 团队外成员的远程库中有了需要的工程文件:
- 建立自己的工作空间
- 执行:git clone 自己远程库名访问的地址,克隆一份到本地
-
- 就可在本地进行修改,编辑,
- 修改完成后加入到自己的暂存库,
- 在提交到本地库,
-
- 最后在推送到自己的远程库中
- 远程 库中的工程文件更新完成
- 团队外成员将自己远程库中的项目推送会团队的远程库
- 点击pull request
-
new pull request
- create pull request
- 就会将团队外成员的远程库,推送到团队的远程库。
- 在这里可以与团队负责任人进行交流
- 在这里可以与团队负责任人进行交流
- 等待团队负责人的同意合并,经团队外成员的项目合并到团队远程库中。
- 团队负责人同意并合并团队外成员的提价项目
- 进入github,就如peoject项目文件
- 点击pull request
- 这里会出现,外部成员提交的文件
- 点击项目,进入到文件预览区
- 进入可以回复外部成员的问题
- 点击file change 查看文件的修改
- 点击 Merge pull request,合并外部成员提交的文件
- 填写本次合并的日志信息,并点击 confirm merge
- 远程库中的信息文件就会自动更新
-
- 填写本次合并的日志信息,并点击 confirm merge
- 项目负责人在将远程库中的项目拉去到本地苦中,跨团队合作完成。
-
文件进行更新
-
- 进入可以回复外部成员的问题
- 点击项目,进入到文件预览区
- 项目负责人在本地建立一个项目