Git(四)
分支策略:
1.合並分支時,加上--no-ff
參數就可以用普通模式合並,合並後的歷史有分支,能看出來曾經做過合並,而fast forward
合並就看不出來曾經做過合並。
2.分支每個人創建自己的分支,然後推送到開發分支上,開發分支最後推送到master主分支上。
master
分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活。
自己的分支 ——》開發分支 ——》master 分支
3.當手頭工作沒有完成時,先把工作現場git stash
git stash pop
s
tash@{0}
,回到工作現場。
git stash apply: 恢復之前工作現場,但stash列表裏並不刪除, git statsh pop: 恢復之前工作現場,並將stash列表裏刪除
git stash list: 查看之前 git stash 的現場
4. 開發一個新feature,最好新建一個分支;如果要丟棄一個沒有被合並過的分支,可以通過 git branch -D <name>
5.master 分支是主分支,時刻與遠程同步
dev 分支是開發分支,也需要與遠程同步
bug 分支用於在本地修復bug,沒必要同步
分支可以藏著玩,是否推送視情況而定。
分支協作: (重點、實用)
因此,多人協作的工作模式通常是這樣:
-
首先,可以試圖用
git push origin branch-name
推送自己的修改; -
如果推送失敗,則因為遠程分支比你的本地更新,需要先用
git pull
-
如果合並有沖突,則解決沖突,並在本地提交;
-
沒有沖突或者解決掉沖突後,再用
git push origin branch-name
推送就能成功!
5.如果git pull
提示“no tracking information”,則說明本地分支和遠程分支的鏈接關系沒有創建,用命令git branch --set-upstream branch-name origin/branch-name
。
這就是多人協作的工作模式,一旦熟悉了,就非常簡單。
-
查看遠程庫信息,使用
git remote -v
; -
本地新建的分支如果不推送到遠程,對其他人就是不可見的;
-
從本地推送分支,使用
git push origin branch-name
,如果推送失敗,先用git pull
抓取遠程的新提交; -
在本地創建和遠程分支對應的分支,使用
git checkout -b branch-name origin/branch-name
,本地和遠程分支的名稱最好一致; -
建立本地分支和遠程分支的關聯,使用
git branch --set-upstream branch-name origin/branch-name
; -
從遠程抓取分支,使用
git pull
,如果有沖突,要先處理沖突。
Git(四)