Git學習筆記4 分支

2022-06-29 14:51:12 字數 4471 閱讀 9208

參考鏈結廖雪峰git教程:

建立本地分支:

$ git branch testing  #

建立乙個分支,並命名為testing

建立遠端分支(分兩步):

$ git branch testing    #

建立乙個分支,並命名為testing

$ git push origin testing #

將分支推送到遠端(相當於建立乙個遠端分支)

$ git switch master  #

切換到testing分支,即head指向testing分支(在git2.23及以上的版本中使用)

$ git checkout testing

$ git switch -c dev  #

建立dev分支,然後切換到dev分支(在git2.23及以上的版本中使用)

$ git checkout -b dev

$ git merge dev  #

合併指定的dev分支到當前分支

刪除本地分支

$ git branch -d [branch name]  #

刪除分支,git branch --merged結果中的分支可以進行刪除

$ git branch -d [branch name]  #

強制刪除分支,git branch --no-merged結果中的分支可以進行強制刪除

刪除遠端分支

$ git push origin :temp      #

刪除遠端分支

$ git branch  #

檢視所有分支及當前分支

$ git branch -v  #

檢視每乙個分支的最後一次提交

$ git branch --merged  #

檢視哪些分支已經合併到了當前分支,結果中的分支可以進行刪除

$ git branch --no-merged  #

檢視哪些分支未合併到當前分支,結果中的分支不能刪除

$ git switch -c dev  #

建立並切換到新的分支dev

$ git branch    

#檢視當前的分支,確定結果是dev分支

$ git add readme.txt  

#修改檔案後,在dev分支上暫存檔案

$ git commit -m '

branch test'#

在dev分支提交檔案

$ git switch master  

#dev分支工作完成,切換回master分支

$ git merge dev    

#把dev分支的修改合併到當前的master分支,此時master分支檔案的內容和dev分支上的內容一樣了

$ git branch -d dev   #

此時可以放心地刪除dev分支的了

$ git branch    

#刪除後確認,dev分支不在了

$ git switch -c dev  #

建立並切換到新的分支dev

$ git branch    

#檢視當前的分支,確定結果是dev分支

¥ 修改readme.txt檔案

$ git add readme.txt  #

修改檔案後,在dev分支上暫存檔案

$ git commit -m '

branch test'#

在dev分支提交檔案

$ git switch master  

#dev分支工作完成,切換回master分支

¥ 修改readme.txt檔案

$ git add readme.txt  #

修改檔案後,在master分支上暫存檔案

$ git commit -m '

master branch test'#

在master分支提交檔案

$ git merge dev    

#把dev分支的修改合併到當前的master分支,此時master分支檔案的內容和dev分支上的內容一樣了

$ git status  #檢視產生衝突的檔案:

此時在本地開啟產生衝突的檔案:

手動刪除兩個內容中的乙個(包括《和*****=標記)

$ git add readme.txt  #

修改檔案後,在master分支上暫存檔案

$ git commit -m '

conflict fixedt'#

在master分支提交檔案

$ git branch -d dev   #

刪除dev分支

工作完成。

$ git stash
恢復stash@現場

$ git stash drop stash@  #

刪除stash@現場

$ git stash pop stash@  

#恢復的同時也刪除stash@現場

在軟體開發中,你正在dev分支中工作。突然接到乙個修復代號101bug的任務時,你會很自然的從master分支建立乙個分支bug-101來修復他。但是dev分支上的工作只進行到了一半,還沒法提交,此時你可以使用git stash指令儲存當前工作現場,等以後恢復現場後在dev分支上繼續工作。

當master分支上修復了bug後,因為dev分支是早期從master分支分出來的,所以,這個bug在當前dev分支上也存在。我們可以使用git cherry-pick 把git commit提交所做的修改「複製」到dev分支。

$ git ***   #

你現在在dev分支上工作

$ git stash  #

儲存現場

$ git switch master  #

切換到主分支

$ git switch -c bug-101  #

建立bug-101分支,並切換

¥101bug 修復工作

$ git add readme.txt

$ git commit -m "

fix bug-101"#

提交修復的檔案,修復工作完成

$ git switch master  #

切換到主分割槽

$ git merge --no-ff -m "

merge bug fix 101"#

合併bug-101分支到master分支

$ git branch -d bug-101  #

刪除bug-101分支

$ git switch dev  #

切換到修復101bug之前的工作分支

$ git stash list  #

檢視儲存的工作現場資訊

$ git stash pop  #

恢復現場,並刪除儲存的現場內容

在master分支上修復了bug後,我們要想一想,dev分支是早期從master分支分出來的,所以,這個bug其實在當前dev分支上也存在。我們只需要把6560f7c fix bug 101這個git commit提交所做的修改「複製」到dev分支。

$ git cherry-pick 6560f7c  #

將master分支指定的git commit提交複製到當前的dev分支

在實際開發中,我們應該按照幾個基本原則進行分支管理:

首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合併到master上,在master分支發布1.0版本;你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。所以,團隊合作的分支看起來就像這樣:

Git學習序列4 分支管理

分支是版本管理系統裡面乙個重要的概念,使得版本管理變得更加靈活.專案分支可以用來建立臨時的 分支,當我們編輯測試好之後再推送到主分支上,使得專案開發變得更可控.每個開發者可以通過建立自己的分支來方便整體專案的管理和專案成員之間的交流.而git相比於svn這種集中式版本管理系統,能夠迅速地進行分支的建...

Git學習筆記 7 分支操作

在多人合作專案中,常常出現多個人共同對乙個專案進行修改的情況,因此不會直接在主幹master上進行操作,而是重新開闢新的分支,在新的分支上進行開發,除錯,當除錯通過後才會將分支專案的 合併到主幹中。命令描述 git checkout branch 切換到指定分支 git checkout b new...

Git筆記 2 分支管理

svn有分支管理,但是建立和切換分支耗時特別長,形同虛設。建立於合併分支 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 git merge 刪除分支 git branch d 強...