A3.4 分支與合并

2018-02-24 15:23 更新

分支與合并

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

git branch

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

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

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

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

git checkout

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

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

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

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

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

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

git merge

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

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

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

在?高級(jí)合并?一節(jié)中,我們介紹了合并的過(guò)程及命令,包含?-Xignore-space-change?命令及?--abort?選項(xiàng)來(lái)中止一個(gè)有問(wèn)題的提交。

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

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

git mergetool

當(dāng)你在 Git 的合并中遇到問(wèn)題時(shí),可以使用?git mergetool?來(lái)啟動(dòng)一個(gè)外部的合并幫助工具。

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

git log

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

在本書(shū)的每一章幾乎都有用到此命令來(lái)描述一個(gè)項(xiàng)目的歷史。

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

在?分支創(chuàng)建?一節(jié)中我們使用它加?--decorate?選項(xiàng)來(lái)簡(jiǎn)單的可視化我們分支的指針?biāo)冢瑫r(shí)我們使用?--graph?選項(xiàng)來(lái)查看分叉的歷史記錄是怎么樣的。

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

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

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

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

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

git stash

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

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

git tag

git tag?命令用來(lái)為代碼歷史記錄中的某一個(gè)點(diǎn)指定一個(gè)永久的書(shū)簽。 一般來(lái)說(shuō)它用于發(fā)布相關(guān)事項(xiàng)。

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)