A3.4 分支與合并

2018-02-24 15:23 更新

分支與合并

Git 有幾個實現(xiàn)大部的分支及合并功能的實用命令。

git branch

git branch?命令實際上是某種程度上的分支管理工具。 它可以列出你所有的分支、創(chuàng)建新分支、刪除分支及重命名分支。

Git 分支?一節(jié)主要是為?branch?命令來設(shè)計的,它貫穿了整個章節(jié)。 首先,我們在?分支創(chuàng)建?一節(jié)中介紹了它,然后我們在?分支管理?一節(jié)中介紹了它的其它大部分特性(列舉及刪除)。

在?跟蹤分支?一節(jié)中,我們使用?git branch -u?選項來設(shè)置一個跟蹤分支。

最后,我們在?Git 引用?一節(jié)中講到了它在背后做一什么。

git checkout

git checkout?命令用來切換分支,或者檢出內(nèi)容到工作目錄。

我們是在?分支切換?一節(jié)中第一次認(rèn)識了命令及?git branch?命令。

在?跟蹤分支?一節(jié)中我們了解了如何使用?--track?標(biāo)志來開始跟蹤分支。

在?檢出沖突?一節(jié)中,我們用此命令和?--conflict=diff3?來重新介紹文件沖突。

在?重置揭密?一節(jié)中,我們進一步了解了其細(xì)節(jié)及與?git reset?的關(guān)系。

最后,我們在?HEAD 引用?一節(jié)中介紹了此命令的一些實現(xiàn)細(xì)節(jié)。

git merge

git merge?工具用來合并一個或者多個分支到你已經(jīng)檢出的分支中。 然后它將當(dāng)前分支指針移動到合并結(jié)果上。

我們首先在?新建分支?一節(jié)中介紹了?git merge?命令。 雖然它在本書的各種地方都有用到,但是merge?命令只有幾個變種,一般只是?git merge <branch>?帶上一個你想合并進來的一個分支名稱。

我們在?派生的公開項目?的后面介紹了如何做一個?squashed merge?(指 Git 合并時將其當(dāng)作一個新的提交而不是記錄你合并時的分支的歷史記錄。)

在?高級合并?一節(jié)中,我們介紹了合并的過程及命令,包含?-Xignore-space-change?命令及?--abort?選項來中止一個有問題的提交。

在?簽署提交?一節(jié)中我們學(xué)習(xí)了如何在合并前驗證簽名,如果你項目正在使用 GPG 簽名的話。

最后,我們在?子樹合并?一節(jié)中學(xué)習(xí)了子樹合并。

git mergetool

當(dāng)你在 Git 的合并中遇到問題時,可以使用?git mergetool?來啟動一個外部的合并幫助工具。

我們在?遇到?jīng)_突時的分支合并?中快速介紹了一下它,然后在?外部的合并與比較工具?一節(jié)中介紹了如何實現(xiàn)你自己的外部合并工具的細(xì)節(jié)。

git log

git log?命令用來展示一個項目的可達歷史記錄,從最近的提交快照起。 默認(rèn)情況下,它只顯示你當(dāng)前所在分支的歷史記錄,但是可以顯示不同的甚至多個頭記錄或分支以供遍歷。 此命令通常也用來在提交記錄級別顯示兩個或多個分支之間的差異。

在本書的每一章幾乎都有用到此命令來描述一個項目的歷史。

在?查看提交歷史?一節(jié)中我們介紹了此命令,并深入做了研究。 研究了包括?-p?和?--stat?選項來了解每一個提交引入的變更,及使用--pretty?和?--online?選項來查看簡潔的歷史記錄。

在?分支創(chuàng)建?一節(jié)中我們使用它加?--decorate?選項來簡單的可視化我們分支的指針?biāo)?,同時我們使用?--graph?選項來查看分叉的歷史記錄是怎么樣的。

在?私有小型團隊?和?提交區(qū)間?章節(jié)中,我們介紹了在使用?git log?命令時用branchA..branchB?的語法來查看一個分支相對于另一個分支, 哪一些提交是唯一的。 在?提交區(qū)間?一節(jié)中我們作了更多介紹。

在 > 和?三點?章節(jié)中,我們介紹了?branchA...branchB?格式和?--left-right?語法來查看哪些僅其中一個分支。 在?合并日志?一節(jié)中我們還研究了如何使用?--merge選項來幫助合并沖突調(diào)試,同樣也使用?--cc?選項來查看在你歷史記錄中的合并提交的沖突。

在?引用日志?一節(jié)中我們使用此工具和?-g?選項 而不是遍歷分支來查看 Git 的?reflog

在?搜索?一節(jié)中我們研究了-S?及?-L?選項來進行來在代碼的歷史變更中進行相當(dāng)優(yōu)雅地搜索,如一個函數(shù)的歷史。

在?簽署提交?一節(jié)中,我們了解了如何使用?--show-signature?來為每一個提交的?git log輸出中,添加一個判斷是否已經(jīng)合法的簽名的一個驗證。

git stash

git stash?命令用來臨時地保存一些還沒有提交的工作,以便在分支上不需要提交未完成工作就可以清理工作目錄。

儲藏與清理?一整個章節(jié)基本就是在講這個命令。

git tag

git tag?命令用來為代碼歷史記錄中的某一個點指定一個永久的書簽。 一般來說它用于發(fā)布相關(guān)事項。

我們在?打標(biāo)簽?一節(jié)中介紹了此命令及相關(guān)細(xì)節(jié),并在?為發(fā)布打標(biāo)簽?一節(jié)實踐了此命令。

我也在?簽署工作?一節(jié)中介紹了如何使用?-s?標(biāo)志創(chuàng)建一個 GPG 簽名的標(biāo)簽,然后使用?-v?選項來驗證。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號