2017-04-14 50 views
0

我有一個關於git的問題,我想克隆一個樹,但沒有成功。我不能克隆的git樹

git clone https://github.com/cer/event-sourcing-examples/tree/d2077e21aa677a00095f90250470ff011c132ab8/java-spring 

我克隆了一個項目

git clone https://github.com/cer/event-sourcing-examples 

,我試圖切換到該樹,但沒有效果

請問您有什麼建議嗎?

問候

回答

2

的Git不能直接克隆樹。您需要克隆整個存儲庫,然後檢出使用所需樹的提交。爲了減少混亂的緣故,不過,千萬注意,術語「樹」之間的差異,並「承諾」,但:

  • 樹是代表一個目錄的Git對象,包含指向斑點(文件)和其他樹木。樹不一定是存儲庫的根目錄。
  • 一個提交對象包含一個鏈接到樹的存儲庫,以及一些額外的信息,如提交信息,日期和其它標題。

您只能檢查出的提交。很少Git命令直接處理樹形對象(git cat-filegit 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 

如果你不能做到這一點,但是,那麼你」仍然不走運。遠程協議只允許引用命名參考,而不是任意提交。

+0

好的,謝謝Dolda2000 – Victor

0
git clone -b <branch> <remote_repo> 

例子:

git clone -b my-branch [email protected]:user/myproject.git 

替代(不需要公共密鑰設置):

git clone -b my-branch https://[email protected]/username/myproject.git 
+0

我認爲我的問題不是很清楚。我需要的是clonnig樹的內容不是主人使用** git clone https://github.com/cer/event-sourcing-examples** – Victor

0

檢查下面的事情helps.Am使用這裏GIT慶典。

  1. 克隆存儲庫。

    git clone https://github.com/cer/event-sourcing-examples.git

  2. 進入該目錄

    cd event-sourcing-examples/

  3. 開關分支(我被樹假設你的意思分支)

    git checkout wip-vagrant WIP-無業遊民是一個分支名

  4. 獲取更新你必須發出一個拉命令。

    git pull

如果要直接克隆分支然後按照上面的註釋(邁克爾)的說明。