小螞蟻學習git(4)——多人協做、推送分支、拉取分支、解決衝突

    接上篇(http://my.oschina.net/woshixiaomayi/blog/521706)繼續git

    8、多人協做
.net

    當從遠程庫克隆的時候,實際上Git自動的把本地的master分支和遠程的master分支對應了起來,遠程庫的默認名稱是origin。
blog

    git remote    查看遠程庫的信息
rem

    git remote -v    查看遠程庫的詳細信息
get

    推送分支:同步

    是把本分支上全部本地內容提交到遠程庫中,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上,命令:
it

    git push origin master
ast

    通常狀況下,哪些分支須要推送呢?1,master分支是主分支,所以要時刻與遠程同步。2,一些修復bug分支不須要推送到遠程去,能夠先合併到主分支上,而後把主分支master推送到遠程去。
test

    抓取分支:
stream

    場景:本身的同事clone了遠程庫testgit的dev分支,進行了修改,而且已經提交。本身也對testgit的dev分支,一樣的文件作出來修改,而且嘗試提交。

    git push origin dev 能夠看到在推送到遠程庫的時候發生了錯誤,error :failed to push some refs to 'https://……',緣由是,不一樣的人推送了一樣的文件,修改同一個文件的同一個地方。這就形成了衝突,解決的辦法也很簡單,把遠程庫中的文件,拉下來,在本地進行合併,解決了衝突,再推送上去便可,命令:

    git pull    把遠程庫中的文件拉到本地來。可是仍是失敗了,緣由是沒有指定本地dev分支與遠程origin/dev分支的連接,根據命令下的提示,設置dev和origin/dev的連接,命令:

    git branch --set-upstream dev origin/dev    指定本地dev分支和遠程origin/dev的連接

    而後繼續拉下來 git pull,下方的提示:Merge conflict in readme.txt 可見仍是有衝突的。老辦法,進行手工修改,完成後,推送:

    git push origin dev    而後就成功了。

    多人協做的工做模式:

    1,但是試圖用 git push origin <branch-name> 推送本身的修改

    2,若是推送失敗,則由於遠程分支比你的本地更新早,須要先用git pull試圖合併。

    3,若是合併衝突,這須要解決衝突,並在本地提交,再使用 git push origin <branch-name>推送。

相關文章
相關標籤/搜索