2016-09-07 95 views
2

在Git中,你可以參考使用速記HEAD〜頭之前提交,和兩個使用HEAD〜2之前,等HEAD〜用於合併提交

我有了一個合併提交就像一個倉庫以下內容:

A----B-------------F 
     \   /
     C----D----E 

HEAD = F,HEAD〜點B,和HEAD〜2點A.隨着合併提交這樣,有沒有將指向到E的速記?

+0

您可以結帳到CDE分支和HEAD〜2更改 –

回答

6

是;在合併的情況下,~指定生成but you can use ^ to specify the parent number

git show HEAD^2 

將顯示第二位家長。

(區別是特別微妙,因爲沒有一個數字參數都~^表現出同樣的事情,的HEAD第一父,這是因爲這兩個~^默認1沒有一個數值參數,所以他們表現出第一父親(按深度)和第一個父母(按廣度)當然是相同的。)

+0

哦,由於某種原因,我認爲^和〜只是兩種方法來做同樣的事情。 – Dismissile

+0

@Dismissile你並不孤單,我以爲一樣:) – qzb

+0

對,它並不是非常明顯,因爲你通常只想看到直接的父母! :) –

1

我知道你問了提交E,但提交C的簡寫是一個更好的例子,和〜。

這裏是C中的簡寫:

HEAD^2~2 

例如HEAD的第二個父母,然後2從那裏跳下第一父母鏈。

嘗試複製這種回購自己看看(找到「克隆」鏈接):

http://vm.bit-booster.com/bitbucket/plugins/servlet/bb_net/projects/BB/repos/a/commits

enter image description here

而這裏的各種速記如何覆蓋這個答案解析:

git show --no-patch --oneline HEAD 
1286a9a F 

git show --no-patch --oneline HEAD^2 
9640db6 E 

git show --no-patch --oneline HEAD^2~2 
506916b C 

爲讀者練習:另一種方式(使用這個回購)寫HEAD^2〜3?

+0

答案:HEAD^2〜3在這個例子中與HEAD〜1相同:-) –