通常一个项目有一个master
主分支,还有一个develop
开发分支。主要是在develop
分支上协做开发,而后merge
合并到master
主分支上。git
当从远程仓库克隆时,其实git clone
操做将远程的master
和本地的master
分支对应起来了。而且默认的仓库名称是origin
。vim
多人协做,我这里的多人协做是指,多我的在develop
分支上开发,这时候你们每每会在master
和develop
分支上推送各自的修改。fetch
模拟一个小伙伴克隆代码并在develop
分支上更新提交代码code
# 克隆代码 $ git clone …… # 切换分支 $ git checkout develop # 同步远程和本地分支内容 $ git pull origin develop # 更新修改代码 # 提交更新 $ git add . $ git commit -m "first commit" $ git push origin develop
这个时候,你的小伙伴已经向origin/develop
分支推送了他的代码更新提交,而这个时候,你也一样更新了develop
分支上的内容,而且也要推送提交。开发
这个时候远程develop
分支上已经更新了小伙伴的推送,模拟你也对一样的文件作修改并推送同步
# 提交推送你的更新 $ git add . $ git commit -m "other partner update code" $ git push origin develop
这个时候发现推送会有错误。it
这是由于你的小伙伴的最新提交和你试图推送的部分的提交有冲突。ast
解决办法很简单,按照git
提示,先用git pull
把最新的提交从origin/develop
上抓取下来。,而后在本地合并,解决冲突,再推送。date
执行命令:im
# 同步远程版本库的更新,拉回分支更新到本地 $ git pull
git pull
至关于从远程获取最新版本而且merge
到本地。(至关于git fetch和git merge的操做)
git fetch
至关于从远程获取最新版本到本地,不会自动merge
这个时候能够看到有冲突CONFLICT
,解决本地冲突。
解决冲突以后,再提交就能够了。
在执行git pull
操做的时候,可能会出现如下一个vim
窗口,
执行:q
退出就能够了。
注意:每次在提交代码前最好都
git pull
合并一下,而后解决冲突,再推进提交
有道云笔记参考:
http://note.youdao.com/noteshare?id=37f3f8f3c37752db7c8fab7889880b94&sub=656272912B8A41F8ADDA38D8680D68C5