標題已經透露了本篇博文的目標:熟悉git的基本分支操作。
假定你已經熟悉git的基本操作,如轉殖倉庫,提交**等等。
你也需要了解git的基本概念,例如git的branch,commit等。
如果你還不熟悉這些,請移步
切換到develop
$ git checkout develop
更新develop
$ git pull origin develop
建立分支
$ git checkout -b hfd_project_a_local
此時我們就擁有了乙個名為hfd_project_a_local的分支。它和develop分支是一模一樣的,名字除外。
$ git push origin 《本地分支名》:《遠端分支名》
$ git push origin hfd_project_a_local:hfd_project_a
此時,你在origin指向的遠端倉庫建立了
hfd_project_a,它是
hfd_project_a_local的拷貝。
有時你需要在他人已經建立好的分支上進行開發,此時你就要用到這個技能了。
$ git fetch origin 《遠端分支名》:《本地分支名》
$ git fetch origin hfd_project_a:hfd_project_a_local
此時,你本地擁有了
hfd_project_a_local,它是遠端分支
hfd_project_a的拷貝。
在團隊合作時,你和同事都不斷將自己的**提交到遠端倉庫,為了將遠端的**同步到本地,你可以:
$ git checkout hfd_project_a_local
$ git pull origin 《遠端分支名》
$ git pull origin hfd_project_a
如果一切順利的話,遠端的**就已經合併到你的本地分支了。
在並行開發等情況下,你可能需要將乙個分支合併到另乙個分支
$ git checkout hfd_project_b
$ git pull origin hfd_project_b
$ git checkout hfd_project_a
$ git pull origin hfd_project_a
$ git merge hfd_project_b
一切順利,此時hfd_project_b成功合併到了hfd_project_a
在更新分支、合併分支時,如果遇到阻礙,那往往是因為遇到了衝突,這意味著git不能自動合併兩個檔案了。
如此,我們只能手動解決衝突。
$ git merge hfd_project_b
/lib/dao/hfd/kernel/orderdetail
.php
conflict (content): merge conflict
in
/lib/dao/hfd/kernel/orderdetail
.php
automatic merge failed; fix conflicts and
then
commit the result.
$ git status
# on branch hfd_project_a
# unmerged paths:
#
開啟遇到衝突的檔案,找到類似如下的內容
<<<<<<< head
$oorm->addfilter(
'istatus'
,
'='
, 1);
*****==
$oorm->addfilter(
'istatus'
,
'='
, 0);
>>>>>>> hfd_project_b
經過確認,我們確定了應該保留哪一行,上面的內容改為
$oorm->addfilter(
'istatus'
,
'='
, 1);
告訴git我們已經解決衝突了
/lib/dao/hfd/kernel/orderdetail
.php
$ git status
# on branch hfd_project_a
# changes to be committed:
#
#
nice,可以提交**了。
這往往發生在qa同事已經測試完畢,恭喜你,你的分支通過測試了。
然後,你就可以按照「合併分支」部分的描述,將你的開發分支合併到develop。
git操作分支
你也許會有疑惑,為什麼需要建立分支呢,只在主幹線上進行開發不是挺好的嗎?沒錯,通常情況下,只在主幹線上進行開發是完全沒有問題的,不過一旦涉及到出版本的情況,如果不建立分支的話,你就會非常地頭疼。舉個簡單的例子吧,比如說你們公司研發了一款不錯的軟體,最近剛剛完成,並推出了1.0版本。但是領導是不會讓你...
git分支操作
檢視分支git branch v新建分支git branch new branch切換分支git checkout new branch新建分支並切換過去git checkout b new branch在某分支上新建分支git checkout b new branch old branch重新命...
Git分支操作
1.建立本地分支 git branch 分支名,例如 git branch 2.0.1.20120806 注 2.0.1.20120806是分支名稱,可以隨便定義。2.切換本地分支 git checkout 分支名,例如從master切換到分支 git checkout 2.0.1.20120806...