Git多人协作
在开发项目过程中通常都需要多个人协作开发,在多人协作的时候也需要一个远端仓库来进行中间协调
如何拥有远端仓库:
-
公司可以自己开发一个git服务器
-
可以使用开源,现成的远端仓库: GitHub / GitLab / 码云 。。。
假设 “我” 是项目经理,小组里还有一个成员 “Tom”,刚刚开始做项目, “我” 已经搭建好了整个项目环境
“我” 就要创建本地仓库
在这里有两种情况:
1. 先在github上建立远端仓库,然后克隆到本地,这个时候远端仓库和本地的仓库已经建立好连接,再本次仓库中构建项目
2. 项目已经再一个本地仓库中构建好了, 然后再去创建远端仓库,就需要“我”去建立联系
git remote add origin git@github.com:…(项目地址)
然后 git pull origin master // 远端master分支代码拉下来
如果出现了这样的问题:fatal: refusing to merge unrelated histories
pull其实执行的是拉下代码并合并,因为远端有readme,本地没有,所以不给咱们合并,要么在本地建立个readme,要么强行pull
git pull --rebase origin master
然后 将本地仓库的代码提交到远端仓库
3. 记住: 远端的master分支其实就是我们的发布分支(最终的代码),只有组长的本地master才允许去提交到远端master
4. 邀请Tom加入开发 尤其完成后,Tom会在Tom的本地去clone远端仓库
5. “我” 为Tom分配了任务,Tom准备去开发
Tom在本地建立一个功能分支去进行开发 (tom-login),开发完成一个版本之后,注意,不能让tom将自己本地的master和Tom-login合并!
因为我们保证所有开发者本地的master都和远端的master是一样的
所以tom准备去像组长汇报,然后tom将自己的本地tom-login分支的代码提交到远端仓库的某一个分支上
git push origin tom-login // tom-login分支如果没有的话会自动创建 其实, 专门接受tom提交的代码的分支也可以让组长提前建好
此时“我”需要去review tom所写的代码,知道Tom的代码审核通过了
6. “我” 会在本地建立tom-login 并且将远端的tom-login代码拉下来,检查无误后,“我”会将本地的tom-login合并到本地的master,将合并后的完整的代码提交到远端的发布分支(master)
当出现冲突的时候,商量着解决。。。