# git 多人协同工作
1. 从远程仓库上克隆 `dev` 分支;
```
$ git clone -b dev http://oa.zyqwt.com/flash/oa_backend.git
```
2. 切换到本地 `dev` 分支,在该 `dev` 分支下新建自己的分支;
```
$ git checkout -b dev_zjf
```
3. 切换到自己的本地工作分支,即步骤 2 中的 `dev_zjf` ,在该分支下进行自己的工作,如新增或修改代码;
```
$ git checkout dev_zjf
```
4. 完成自己的工作后,把项目提交到自己的远程分支 `dev_zjf`
```
$ git add .
$ git commit -m '新的代码说明'
$ git push origin dev_zjf
```
5. 切换到本地 `dev` 分支
```
$ git checkout dev
```
6. 将本地 `dev` 分支与自己的本地工作分支合并
```
$ git merge dev_zjf
```
7. 把本地合并完成的 `dev` 提交到远程仓库 `dev` 。
> 注意:不能直接将本地 `dev` 提交上去,因为如果你直接这样会将他人提交过的成果直接覆盖(因为在你`clone` 分支 `dev` 之后,别人也有可能对 `dev` 进行修改并提交到远程,这时你的 `dev` 就跟远程的不一样了;如果你直接推送,就会将别人的代码覆盖,会被打死的)
8. 从远程分支 `fetch`
```
// 将远程的dev拉下来作为temp分支(因为别人如果push过,远程的dev就和你本地的dev不一样了)
$ git fetch origin dev:temp
// 如果有冲突的话会有提示,然后解决冲突
$ git merge temp
```
9. 解决完冲突后
```
$ git add .
$ git commit -m '新的代码说明'
$ git push origin dev
```
10. 删除临时分支 `temp`
```
$ git branch -d temp
```
11. 同步自己的本地分支 `dev_zjf`
```
$ git checkout dev_zjf
$ git merge dev
```
12. 最后同步自己的远程分支 `dev_zjf`
```
$ git add .
$ git commit -m '新的代码说明'
$ git push origin dev_zjf
```
网友评论