2015-01-12 44 views
0

今天我們有Linux項目如下根目錄下:如何在特定的時間點檢查項目的根目錄(提交)?

arch 
block 
crypto 
drivers 
firmware 
fs 
include 
init 
ipc 
kernel 
lib 
mm 
net 
samples 
scripts 
security 
sound 
tools 
usr 
virt/kvm 

我要檢查在特定時間點的根目錄下(承諾:15c03dd4859ab16f9212238f29dd315654aa94f6日期:2013年9月29日18:02:38- 04)。

我該怎麼辦?

我試圖尋找一些git命令,但我找不到我可以用它來執行的命令。謝謝,

回答

2

做這將是兩種最好的方法:

git show 15c03dd4859ab16f9212238f29dd315654aa94f6^{tree} 

或:

git ls-tree 15c03dd4859ab16f9212238f29dd315654aa94f6 

ls-tree咒語顯示出比你現在有什麼一點信息,但它不應該太很難去除不需要的東西cutawk ...

沒有理由弄亂你當前的分支指針或創建一個新的科。此外,您可以將散列縮寫爲一個唯一的前綴,並且您還可以使用分支或標記名稱而不是散列或其他可接受的語法,如[email protected]{10 days ago}或其他任何...

0

有許多方法可以做到這一點最簡單的是可以使用SHA當前分支恢復到那個時間點:

git reset --hard 15c03dd 

我個人不喜歡這樣做,通常簽入一個新的分支,而不是:

git checkout -b OldRootDirectory 15c03dd 

第二種方法創建一個名爲OldRootDirectory新的分支並初始化分支點的頭在你的提交時間。它也會將您切換到該分支。

+1

'git reset --hard' is not這是一個合適的解決方案。你可以檢查提交,但是(在一個分離的頭上):'git checkout 15c03dd'。 – poke

+0

戳是對的;你想在這裏使用'git checkout',而不是'git reset'。另外,馬上創建一個分支有點矯枉過正,除非你確定要從歷史的這一點創建新的提交;見[this](http://stackoverflow.com/questions/26051216/why-does-git-detached-head-even-exist/26054564#26054564)。 – Jubobs

相關問題