Git分支(本地)

2022-02-26 15:01:54 字數 1602 閱讀 3730

1、git儲存的不是檔案的差異或者變化量,而只是一系列檔案快照(file snapshot);

2、暫存操作會對每乙個檔案計算校驗和(sha-1雜湊字串),然後把當前版本的檔案快照儲存到git倉庫中(git使用blob型別的物件來儲存這些快照),並將校驗和加入到暫存區;

3、git中分支,其實本質上是個指向commit物件的可變指標。git會使用master最為預設的分支名稱。在若干次提交後,你其實已經有了乙個指向最後一次提交物件的master分支,它在每次提交時都會自動向前移動;

4、git是如何知道當前在哪個分支上工作的呢?答案很簡單:它儲存著乙個名叫head的特別指標(head指標是乙個指向你正在工作中的本地分支的指標);

5、執行git branch命令僅僅是建立了乙個新的分支,但不會自動切換到這個分支中去;

6、git checkout master命令做了2件事:

6.1、把head指標指向master分支;

6.2、把工作目錄中的檔案替換成master分支所指向的快照內容。

7、git中的分支實際上僅是乙個包含所指物件校驗和(40個字元長度sha-1字串)的檔案,所以建立和銷毀乙個分支就變得十分廉價;

8、對於hotfix採取如下的流程來處理:

8.1、返回原先已經發布到生產伺服器上的分支;

8.2、為這次緊急修補建立乙個新分支,並在其中修復問題;

8.3、通過測試後,回到生產伺服器所在的分支,將修補分支合併進來,然後再推送到生產伺服器上;

8.4、切換到之前實現新需求的分支,繼續工作。

9、對於2個分支沒有直接的祖先物件,按如下方式進行合併:

9.1、git沒有簡單地將指標向右移動;

9.2、將三方(比如:c4、c5、c2)合併後的結果重新做乙個新的快照,並自動建立乙個指向它的提交物件(比如為:c6),這樣提交物件(c6)比較特殊,它有兩個祖先(c4和c5);

10、檢視各個分支最後乙個提交物件的資訊,執行:git branch -v

11、檢視已於當前分支合併的分支,執行:git branch --merged

12、檢視未與當前分支合併的分支,執行:git branch --no-merged

13、特性(topic)分支:乙個短期的用來實現單一特性或與其相關工作的分支,在git中,一天之內置立、使用、合併再刪除多個分支是常見的事;

git 本地分支與遠端分支

最近看到了廖雪峰部落格的git教程,內容詳實生動,安利一下。正好也看到了分支的git操作 git 檢視遠端分支 本地分支 建立分支 把分支推到遠端repository 刪除本地分支 分享同時修改了一些排版和備註說明。git branch a br 2.1.2.2 master remotes ori...

git建立本地分支,遠端分支

一 本地分支 建立本地分支,然後切換到dev分支 git checkout b devgit checkout命令加上 b引數表示建立並切換,相當於以下兩條命令 git branch dev git checkout dev然後,用git branch命令檢視當前分支 git branch dev ...

Git本地分支與遠端分支

我們在使用git進行開發的時候經常會遇到需要切換遠端分支並且提交到遠端指定分支的情況,現在記錄下操作步驟。git branch agit branch不帶引數,列出本地已經存在的分支,並且在當前分支的前面用 標記,加上 a引數可以檢視所有分支列表,包括本地和遠端,遠端分支一般會用紅色字型標記出來 g...