通常一個項目有一個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