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


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

 

  Merge

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

 

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

 


  Cherry Pick

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

 

  Rebase

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

 

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

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

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

  技術(shù)說明

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

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

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