您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 >
圖解Git中的常用命令
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/7/28 16:35:44 ] 推薦標(biāo)簽:開(kāi)源配置管理


  如果給了文件名(或者 -p選項(xiàng)), 那么工作效果和帶文件名的 checkout 差不多,除了索引被更新。

 

  Merge

  merge 命令把不同分支合并起來(lái)。合并前,索引必須和當(dāng)前提交相同。如果另一個(gè)分支是當(dāng)前提交的祖父節(jié)點(diǎn),那么合并命令將什么也不做。 另一中情況是如果當(dāng)前提交是另一個(gè)分支的祖父節(jié)點(diǎn),導(dǎo)致 fast-forward 合并。指向只是簡(jiǎn)單的移動(dòng),并生成一個(gè)新的提交。

 

  否則是一次真正的合并。默認(rèn)把當(dāng)前提交(ed489 如下所示)和另一個(gè)提交(33104)以及他們的共同祖父節(jié)點(diǎn)(b325c)進(jìn)行一次三方合并。結(jié)果是先保存當(dāng)前目錄和索引,然后和父節(jié)點(diǎn)33104一起做一次新提交。

 


  Cherry Pick

  cherry-pick 命令”復(fù)制”一個(gè)提交節(jié)點(diǎn)并在當(dāng)前復(fù)制做一次完全一樣的新提交。

 

  Rebase

  衍合是合并命令的另一種選擇。合并把兩個(gè)父分支合并進(jìn)行一次提交,提交歷史不是線性的。衍合在當(dāng)前分支上重演另一個(gè)分支的歷史,提交歷史是線性的。 本質(zhì)上,這是線性化的自動(dòng)的 cherry-pick

 

  上面的命令都在topic分支中進(jìn)行,而不是master分支,在master分支上重演,并且把分支指向新的節(jié)點(diǎn)。注意舊提交沒(méi)有被引用,將被回收。

  要限制回滾范圍,使用--onto選項(xiàng)。下面的命令在master分支上重演當(dāng)前分支從169a6以來(lái)的近幾個(gè)提交,即2c33a。

  同樣有g(shù)it rebase --interactive讓你更方便的完成一些復(fù)雜操組,比如丟棄、重排、修改、合并提交。沒(méi)有圖片體現(xiàn)著下,細(xì)節(jié)看這里:git-rebase (1)

  技術(shù)說(shuō)明

  文件內(nèi)容并沒(méi)有真正存儲(chǔ)在索引(.git/index)或者提交對(duì)象中,而是以 blob 的形式分別存儲(chǔ)在數(shù)據(jù)庫(kù)中(.git/objects),并用 SHA-1值來(lái)校驗(yàn)。 索引文件用識(shí)別碼列出相關(guān)的 blob 文件以及別的數(shù)據(jù)。對(duì)于提交來(lái)說(shuō),以樹(shù)(tree)的形式存儲(chǔ),同樣用對(duì)于的哈希值識(shí)別。樹(shù)對(duì)應(yīng)著工作目錄中的文件夾,樹(shù)中包含的樹(shù)或者 blob 對(duì)象對(duì)應(yīng)著相應(yīng)的子目錄和文件。每次提交都存儲(chǔ)下它的上一級(jí)樹(shù)的識(shí)別碼。

  如果用 detached HEAD 提交,那么后一次提交會(huì)被 the reflog for HEAD 引用。但是過(guò)一段時(shí)間失效,終被回收,與git commit --amend或者git rebase很像。

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd