[英]How do I checkout a specific revision from a repository and its submodules
我有一個克隆的存儲庫(或至少被告知要克隆),使用
git clone git://therepository --recursive
該存儲庫中包含子模塊。 我要做的是從存儲庫中獲取某個日期的文件。 我嘗試這樣做:
git checkout `git rev-list -n 1 --before="2011-12-10 13:37" master`
但這似乎對子模塊沒有任何作用。
誰能建議我應該怎么做才能實現子模塊? (我實際上並不需要存儲庫的完整克隆,因此,如果有一種方法可以通過子模塊遞歸獲取特定修訂版的話,也可以)。
額外
如果將-b開關添加到結帳,則可以運行:
git submodule sync
git submodule update
沒有任何錯誤,但是子模塊似乎仍然包含其文件的HEAD版本。
此處的小腳本: http : //cemerick.com/2009/09/28/working-with-git-submodules-recursively/
給了我另一種在每個子模塊(以及每個子模塊的子模塊,無限時)上遞歸調用checkout的替代方法,它對我不起作用(似乎是對某些文件的錯誤修訂),但這可能是我特有的問題,因此它可能對其他搜索相同功能的人有用。
請注意,我不得不在結帳呼叫中更改HEAD的主文件,這只是一個猜測,所以也許這也是為什么我仍然對要檢出文件修訂版存在問題。
令我感到驚訝的是,這似乎既困難又很少做到(找不到有關如何通過Google進行操作的參考)。 我本以為從某個特定日期或標簽獲取文件來獲取模塊和子模塊,這是人們相當定期地做的事情,以調試舊版本的代碼等
在簽出/克隆后是否運行git submodule update
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.