2016-12-31 38 views
1

有一個我想從中建立的存儲庫,但是如果我克隆存儲庫,源代碼在不穩定的程序中會得到結果。他們標記的源代碼的最後一個版本(1.2)是穩定的,但我不確定如何使用git下載它。從我一直在閱讀搜索答案時,我可以先克隆存儲庫,然後使用checkout切換到標籤;如何下載特定的git存儲庫標籤?

git clone https://github/project/project.git

cd project

git checkout tags/1.2

這導致分離的頭的模式,我不知道是一個問題或沒有。然而,我沒有得到的是,當我結賬時,它說它切換到「工作樹」中的標籤。這是否意味着現在如果我用開發團隊包含的腳本構建它,它只會構建1.2源代碼?我這樣做了,而且我看到一個看起來不穩定的程序。不過,我不能說出它是什麼版本,因爲它沒有說(他們正在修復後來的版本)。

那麼我是否正確地做到了這一點?或者我是通過使用結帳吠叫錯誤的樹。我的意思是,理想情況下,我希望能夠下載該標籤的源代碼,而不必克隆整個存儲庫,但似乎無法弄清楚如何做到這一點,如果甚至可能的話。

回答

0

據我可以告訴你做得對。

下載回購將包括所有標籤,除非您已將git配置爲不下載標籤。

當你簽出一個標籤(使用git checkout 1.2就足夠了),你確實會以數據頭模式結束。但這應該不成問題。 (運行git checkout master返回到HEAD)。

簽出標籤後,您的工作目錄現在應該在項目標籤發佈時的位置。

此時您可能想要執行的操作是刪除所有生成或緩存的文件並從頭開始構建項目。如何做到這一點取決於代碼和構建系統。如果項目使用make,則通常應該運行make clean

+0

感謝您的幫助! – user7357954

1

我非常希望能夠下載該標記 源,而無需克隆整個倉庫,但我似乎無法給 弄清楚如何做到這一點,如果它甚至有可能。

你可以這樣做:

git clone https://github.com/jquery/jquery.git --branch 3.1.1 --depth 1 

要提取其他沒有提交歷史特定的標籤。 --branch參數可以在現代版本的git中使用標籤名稱以及分支名稱,如this answer中所述。 --depth 1產生淺克隆,在沒有進一步歷史的情況下進行結賬。淺克隆詳細說明例如here。我使用的示例倉庫jquery足夠大,您可以觀察其差異。

這將導致分離狀態,這就是它的意思。

相關問題