通過本系列的上兩篇文章(檢視系列文章:我們已經知道了如何使用git完成對檔案的版本控制。本次我們繼續學習如何通過git進行分支管理。
首先,我們要弄明白什麼是分支。通過git log 命令我們可以檢視版本庫的提交日誌,如圖:
那麼這些commit之間存在什麼關係呢?實際上每次commit的時候,提交物件都會儲存乙個指向上次一commit版本的指標,經過多次提交之後,git通過這個指標將多個提交版本串成了乙個串,如下圖:
分支實際上就是從某個提交版本向前的的歷史,到目前為止git中只有乙個分支,這個分支我們稱為主分支,預設名稱為master。每提交一次,master就會向前移動一步,指向最新的提交版本。
那麼在git中,我們如何建立新的分支呢,非常簡單可以用使用git命令:git branch 分支名字。
這樣我們就建立了乙個名為:jredu_branch_01的分支,注意此分支是建立在當前的commit版本物件上的,如下圖所示:
現在我們有了兩個分支,那麼git如何知道當前的工作分支呢?其實在git中儲存著乙個名為head的特別指標,這個指標指向了當前的工作分支。
使用「git branch 分支名字」只是建立了乙個分支,並不會切換到新建的分支中,如果想切換分支,我們應該使用命令:git checkout 分支名字
切換後,head就指向了jredu_branch_01,示意圖如下:
我們在jredu_branch_01分支下進行工作,通過命令」git add」和」git commit」新增新的檔案並提交後,新的分支示意圖如下:
從示意圖可以看出新分支jredu_branch_01向前移動了一步,而主分支master還停留在原來的版本上。
在git中存在多個分支,如何檢視並知道當前工作分支呢?檢視命令:git branch
可以看到共有兩個分支master和jredu_branch_01,「*」表明了當前的工作分支。
有了分支之後,我們就可以方便的進行協作開發,這樣就可以能會產生多個分支,那麼如何進行分支合併呢?git提供的合併命令:git merge 被合併的分支
具體步驟,首先返回master分支,其次執行合併命令:
這樣我們就將jredu_branch_01分支合併到了master分支之上。
jredu_branch_01分支被合併到master之後,就沒有用處了,這裡我們可以選擇刪除它,git中刪除分支的命令:git branch –d 要刪除的分支
在合併分支的過程中,如果遇到不同的分支對相同的檔案都做了修改,那麼合併就不會那麼順利了,經常會看到如下的資訊:
這個時候git雖然做了合併,但是沒有提交,需要解決衝突之後才能提交。通過git status命令我們可以看到衝突的檔案
開啟衝突的檔案,我們看到具體的檔案內容
檔案中使用「*****====」分割不同的分支檔案修改中衝突的部分,「<<<<<<<>>>>>>>>>>jredu_branch_01」部分是分支jredu_branch_01分支修改的內容。
修改檔案後,使用git add命令,並使用git status檢視衝突 狀態,並最終提交。
這樣就解決了衝突的問題,完成了最終的合併。
總結一下git分支的相關命令
建立分支:git branch 分支名字疑問諮詢或技術交流,**入官方qq群:傑瑞教育切換分支:git checkout 分支名字
檢視分支:git branch
合併分支:git merge 要合併的分支
刪除分支:git branch –d 要刪除分支
出處:
本文版權歸煙台傑瑞教育科技****
Git 版本控制 三
前面兩篇我們成功安裝了git,並且成功建立了我們的版本庫。建立了版本庫,怎麼可以不往裡面放內容呢,所以今天的任務就是學會將檔案放入至我們的版本庫中.首先,我們點開我們的 git bash 然後在我們learngit資料夾下建立個txt格式的檔案,取名 first controll 檔案的內容是 gi...
Git 分支管理和版本控制
git 分支管理 幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。建立和切換分支命令git branch 後面不跟引數時,表示檢視當前所有的分支 git branch branchname 建立分支 git checkout br...
git版本控制
1.git 是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本 管理。2.git配置管理 一般,有乙個 集中庫,包含4個分支 qa才能merge production 發布生產,出現生產問題,轉hotfix 研發經理 hotfix 解決緊急生產問題,測試後轉producti...