使用git多人协同开发
流程
使用git进行多人协同开发,依赖于git的创建分支功能,比如一个仓库下,main分支是主分支,然后需要在此基础上开发新的功能,就从main切出去一个新额分支,开发完成后,再rebase或merge回main分支。
每个开发者只需要关心以下几步:
- git pull拉取仓库;
- git checkout branch 切换到相应的开发分支,需要创建好本地分支和远程分支并关联;
- 在分支上完成开发;
- 合并到主分支上。
操作
首先我们建立一个仓库——在托管平台上还要注册,有点麻烦,这里就用在远程服务器上创建一个裸仓库代替:
1 | git init --bare git_demo.git |
假设有两个开发人员一起工作,他们都克隆了这个仓库:
1 | git clone sshname@ip:path/reponame.git |
如果是从托管平台上git下来的话,还需要管理员将开发者加入到仓库中。对应的开发人员本地要配置git的用户名和邮箱
1 | git config --global user.name 'xxx' |
由于裸仓库是建立在远程主机上的,就不需要这些步骤了,在向仓库推送的时候输入远程主机的用户密码就好了,或者将本地的ssh公钥配置到远程主机上。
拉取仓库
最好在每次开发前都执行一次git pull来拉取远程仓库中最新的代码。
如果要拉取指定分支上的代码,首先切换到绑定了远程仓库中对应分支的本地分支上,如果名称不一致的话,使用git pull origin branchname
来拉取分支,origin是远程仓库的名称,如果分支名称一致,直接使用git pull
即可。
创建分支
在托管平台上可以先创建好分支然后再拉取下来,如果只使用git的话,可以先在本地创建分支,然后推送到远端:
1 | git branch dev |
不过这个时候,本地和远端的分支还没有建立链接,直接推送的话会看到git如下的报错内容:
1 | fatal: The current branch dev has no upstream branch. |
意思是需要建立本地和远端的映射,按照git的提示输入命令即可。
提交
切换到开发分支后,就可以快乐地开发了,开发完成后,需要将开发分支的内容加入到主分支中,自己玩的话可以直接merge或rebase到主分支中——比较好的做法是先将主分支合并到当前分支上,解决完冲突后再将当前分支合并到主分支中,这样减少了误操作主分支的风险;
更规范的操作应该是在托管平台上提交pull request,指定将自己仓库的哪条分支合并到目标仓库的哪条分支上,然后解决完冲突就可以安全地合并了,当然是否接受合并是仓库地管理员来决定的,开发者只需要提交pull request就好了。