的Git不能直接克隆樹。您需要克隆整個存儲庫,然後檢出使用所需樹的提交。爲了減少混亂的緣故,不過,千萬注意,術語「樹」之間的差異,並「承諾」,但:
- 樹是代表一個目錄的Git對象,包含指向斑點(文件)和其他樹木。樹不一定是存儲庫的根目錄。
- 一個提交對象包含一個鏈接到根樹的存儲庫,以及一些額外的信息,如提交信息,日期和其它標題。
您只能檢查出的提交。很少Git命令直接處理樹形對象(git cat-file
和git ls-tree
是例外)。但是,您的GitHub URL中的對象ID實際上是提交的ID,所以這不是問題。
你能做什麼,然後,是檢查你要提交到一個新的分支你克隆後的版本庫:
git checkout -b test-branch d2077e21
如果你想解決的問題只是一個取單個提交(或樹)從遠程存儲庫,然後你運氣不好,因爲Git的遠程協議不支持該操作。如果有什麼事情,如果你可以插入一個分支到遠程倉庫在提交你願意,你可以直接克隆一個分支,沒有任何歷史:
git clone -b test-branch --depth 1 https://github.com/cer/event-sourcing-examples
如果你不能做到這一點,但是,那麼你」仍然不走運。遠程協議只允許引用命名參考,而不是任意提交。
好的,謝謝Dolda2000 – Victor