2015-06-20 78 views
1
$ git log --oneline 
05f1c3b master: Modified 1.txt 
f7433e0 Updated by master 
e30dff9 Modified 1.txt 
82ebf7a Modified 1.txt 
cbb2785 master: Added 4.txt after rebase branch was created 
980a5d6 b1: Added 1.txt 
badc046 Resolved merge conflict 
47a2d78 Mods by b2 
c3eb61e Added by b1 
9378e3d 1ST commit 

下面顯示了什麼:'git log^X'應該顯示什麼?

$ git log ^47a2d78 

我認爲應該顯示所有從badc046了承諾,因爲這些都不是從47a2d78到達。

我錯過了什麼?

回答

4

^hash是指「排除是從(即祖先)可達提交。」

因此:

git log ^47a2d78 

轉化爲 「顯示日誌所有提交排除的哈希47a2d78」。這與任何提交都不匹配。如果你想顯示47a2d78畢竟提交您必須使用log ^47a2d78 HEAD,或者更容易:

git log 47a2d78..HEAD 
+0

提示通常的鏈接到「積極參考」和「負面參考」(http ://stackoverflow.com/a/850695/6309)和修訂列表(http://stackoverflow.com/a/53573/6309)。 +1 – VonC

+0

現在你確認它沒有任何回報,我意識到我誤解了這種行爲,或者更確切地說git會「理解我的想法」。根據否定法則,我認爲git可以暗示我想看到從47a2d78不可達的提交。顯然,這是不可能的,因爲我沒有具體說明。 – Ltf4an

0

如果你想有一個日誌在一定範圍內提交的,你可以這樣做:

git log HEAD...47a2d78 
+0

'^ hash'表示「不從哈希可達」。 'hash ^'的意思是「散列的父親」 – knittl

+0

我知道,但在這種情況下,它意味着什麼 –

+0

我刪除了解釋,因爲它是特定於git日誌 –

相關問題