我有一個包含子目錄的git存儲庫。示例dirA/dirB。 有沒有辦法在Unix服務器上執行git clone
以僅從子目錄(dirB)中提取文件?用git克隆子目錄
是否有其他的git命令而不是克隆會這樣做?
我該如何git一個特定的文件?
我有一個包含子目錄的git存儲庫。示例dirA/dirB。 有沒有辦法在Unix服務器上執行git clone
以僅從子目錄(dirB)中提取文件?用git克隆子目錄
是否有其他的git命令而不是克隆會這樣做?
我該如何git一個特定的文件?
克隆主資源庫時,子模塊不會自動克隆?爲什麼?它荒謬:( – hugemeow 2012-08-26 05:59:09
這不回答這個問題,它基本上說:「我沒有你的問題的答案,所以我會回答另一個問題,因爲這是我認爲你應該做的。」 – 2016-02-22 13:53:37
@EduardoBezerra確實,我更喜歡一個答案,然後對備選方案進行評論。檢查布魯諾托馬斯答案 – 2016-05-27 09:41:45
Git在存儲庫級別上工作。您將無法僅選擇一個子目錄。如果您感興趣的存儲庫具有Web界面,則可以導航到您的子目錄並抓取它。
是的,git在存儲庫上工作,但是由於數據移動性的挑戰,希望進行輕量級結賬的願望很高。 – cgseller 2017-12-27 18:03:51
假設您的項目位於名爲project
的目錄中,並且您只需要那些觸及project/dirB
的提交。
然後:
git clone project/ subproject/
cd subproject
git filter-branch --prune-empty --subdirectory-filter dirB HEAD
subproject
現在將包含混帳歷史其中涉及dirB
。
工程就像一個魅力......! – Ahsan 2013-05-31 07:17:07
這很好地抓住了最初的子目錄內容,但是當我執行後續的'pull'時,它會與原始分支合併... – monkut 2015-04-02 05:26:40
如果您不希望整個git歷史記錄,請添加' - -depth 0'標誌。 – CelticParser 2016-02-04 23:29:43
比照https://www.kernel.org/pub/software/scm/git/docs/git-archive.html
一個shell命令:
git archive --remote=<repo_url> <branch> <path> | tar xvf -
非常酷的命令,感謝分享。幫助很多 – 2017-09-05 12:20:15
我想與大家分享一個解決方法。您可以克隆整個回購,然後創建一個symulink的子目錄:
mkdir <repo_dir>
cd <repo_dir>
git clone <repo_url>
ln -s <sub_dir> <your_location_where_you_want_to_checkout_sub_dir>
再次,這是不是一個解決方案 - 只是一種變通方法。您仍然可以克隆整個回購,並且只能從中提取更改。但是,這在我的一些情況下很有用。
這不是真的克隆,但是如果你只是想要一個項目的一部分,開始一個新的回購,進入你的回購和
git archive master <subdir> | tar -x -C /somewhere/else
然後去/地方/ else和開始一個新的回購有。
http://stackoverflow.com/questions/600079/is-there-any-way-to-clone-a-git-repositorys-sub-directory-only – supervacuo 2012-08-06 20:04:29
[簡單的答案](http:// stackoverflow .com/a/2466755/287948) – 2014-11-01 12:00:28