git学习笔记(四)—— 分支管理
一、創建與合并分支
git branch //查看分支 git branch <name> //創建分支 git checkout <name> //切換分支 git checkout -b <name> //創建切換分支 git merge <name> //合并某分支到當前分支 git branck -d <name> //刪除分支?
二、解決沖突
就是解決兩個分支之間的不同之處,才能夠合并分支。自動合并分支,是創建一個新的結點,將指針指向那個新的節點。
?
三、分支管理
1、不用fast forward模式
合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息。 如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。
git merge --no-ff -m "merge with no-ff" dev //“ “中要加入注釋?
?
2、分支策略
首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面干活。
干活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合并到master上,在master分支發布1.0版本;
團隊每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合并就可以了。
?
四、bug分支
當你接到一個修復一個代號101的bug的任務時,很自然地,你想創建一個分支issue-101來修復它,但是,等等,當前正在dev上進行的工作還沒有提交:并不是你不想提交,而是工作只進行到一半,還沒法提交,預計完成還需1天時間。但是,必須在兩個小時內修復該bug,怎么辦?
幸好,Git還提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以后恢復現場后繼續工作:
git stash?
現在,用git status查看工作區,就是干凈的(除非有沒有被Git管理的文件),因此可以放心地創建分支來修復bug。首先確定要在哪個分支上修復bug,假定需要在master分支上修復,就從master創建臨時分支:
?
git checkout master git checkout -b issue-101//修改bug git add readme.txt git commit -m "fix bug 101"//刪除分支 git checkout master git merge --no-ff -m "merged bug fix 101" issue-101 git branch -d issue-101//回到dev分支 git checkout dev//恢復工作現場 git stash list //顯示保存的工作現場 git stash apply //恢復工作現場,不刪除記錄 git stash drop //不恢復工作現場,刪除記錄 git stash pop //恢復工作現場,刪除記錄 git stash apply stash@{0} //有多個stash的恢復方法?
?
五、多人協作
1、查看遠程庫信息:
git remote //查看遠程庫信息 git remote -v //顯示更詳細的信息?
?
2、推送分支
把該分支上的所有本地提交推送到遠程庫,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上
git push origin master git push origin dev?
?
3、抓取分支
(1)克隆分支
git clone git@github.com:michaelliao/learngit.git?
(2)默認情況下,只是克隆master分支
(3)你的小伙伴要在dev分支上開發,就必須創建遠程origin的dev分支到本地,于是他用這個命令創建本地dev分支
git checkout -b dev origin/dev?
(4)現在,他就可以在dev上繼續修改,然后,時不時地把dev分支push到遠程:
git commit -m "add /usr/bin/env" git push origin dev?
(5)你的小伙伴已經向origin/dev分支推送了他的提交,而碰巧你也對同樣的文件作了修改,并試圖推送
git add hello.py git commit -m "add coding: utf-8" git push origin dev?
(6)推送失敗,因為你和小伙伴的最新提交產生了沖突,解決方法很簡單。
先用git pull把最新的提交從origin/dev抓下來,然后,在本地合并,解決沖突,再推送:
git pull//git pull也失敗了,原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接: git branch --set-upstream dev origin/dev git pull//這回git pull成功,但是合并有沖突,需要手動解決,解決的方法和分支管理中的解決沖突完全一樣。解決后,提交,再push:git commit -m "merge & fix hello.py"
git push origin dev
?
?
轉載于:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6472571.html
總結
以上是生活随笔為你收集整理的git学习笔记(四)—— 分支管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux必会命令 - 后台运行程序 -
- 下一篇: CF572_Div2_D2