2016-01-10 92 views
1

後,我有一個非常深的git歷史查找提交提交

0000001 
0000002 
0000003 
0000004 
... 

我以前git-bisect發現其返回0000003一個老問題的哈希值。原來,解決方案可能這個哈希後趴在提交的一個0000002甚至更​​近的

我可以

後使用

git log 0000003 

,它會顯示該項目的歷史,直到提交,但沒有

0000003 
0000004 
... 

我想查找使用散列的0000003周圍/之後的提交 - 即,我想查找0000002而無需手動滾動所有歷史記錄。

這是如何完成的?

+0

您是否閱讀過https://git-scm.com/docs/gitrevisions? –

回答

1

你可以嘗試,並期待在未來幾年提交(00003後創建的那些)

git log --reverse --pretty=format:%H --ancestry-path 3...master | head -3 

隨着3被提交00003的SHA1。

您有「How do I find the next commit in git?」中描述的其他技術。
例如:

git rev-list HEAD..3 | tail -3 

該承擔這些未來的提交是由船長或HEAD訪問。

在你沒有一個特定的「目的地」中記提交,而是希望看到孩子犯上可能出現的任何分支的情況下,你可以使用這個命令:

git rev-list --children --all | grep ^${COMMIT} 
+0

很酷:-)我學到了一些新的「--ancestry-path」不知道, – CodeWizard

0

git bisect是一個很好的選擇,以及你已經使用它。

您可以使用HEAD〜X

# set X to be the number of commits you want to start with 
git log HEAD~X 

# Range: between HEAD to the previous X commits 
git log HEAD...HEAD~X 

閱讀here有關承諾範圍。