當你從遠端倉庫克隆時,實際上Git自動把本地的
master
分支和遠端的
master
分支對應起來了,并且,遠端倉庫的預設名稱是
origin
。
要檢視遠端庫的資訊,用
git remote
:
或者,用
git remote -v
顯示更詳細的資訊:
上面顯示了可以抓取和推送的origin的位址。如果沒有推送權限,就看不到push的位址。
推送分支
推送分支,就是把該分支上的所有本地送出推送到遠端庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠端庫對應的遠端分支上:
推送了master跟dev分支。
但是,并不是一定要把本地分支往遠端推送,那麼,哪些分支需要推送,哪些不需要呢?
master分支是主分支,是以要時刻與遠端同步;
dev分支是開發分支,團隊所有成員都需要在上面工作,是以也需要與遠端同步;
bug分支隻用于在本地修複bug,就沒必要推到遠端了,除非老闆要看看你每周到底修複了幾個bug;
feature分支是否推到遠端,取決于你是否和你的小夥伴合作在上面開發
抓取分支
多人協作時,大家都會往master和dev分支上推送各自的修改。
現在另一個人從中央倉庫克隆了項目,預設情況下,他隻能看到master分支,現在他想在其他分支上做開發,先運作
git branch –r
檢視遠端有哪些分支:
現在,你的小夥伴要在dev分支上開發,就必須建立遠端origin的dev分支到本地,于是他用這個指令建立本地dev分支:
$ git checkout -b dev origin/dev
現在,他就可以在dev上繼續修改,然後,時不時地把dev分支push到遠端。
現在你想拉取遠端伺服器小夥伴的代碼,切換到dev分支上,并且運作:
git pull
:
你也許會發現上面的提示,
git pull
失敗了,原因是沒有指定本地
dev
分支與遠端
origin/dev
分支的連結,根據提示,設定
dev
和
origin/dev
的連結:
當然會提示你用新的指令。
怎麼删除遠端分支?用
git branch -dr origin/dev
:
是以,多人協作的工作模式通常是這樣:
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合并;
如果合并有沖突,則解決沖突,并在本地送出;
沒有沖突或者解決掉沖突後,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,則說明本地分支和遠端分支的連結關系沒有建立,用指令git
branch –set-upstream branch-name origin/branch-name。
這就是多人協作的工作模式,一旦熟悉了,就非常簡單。