根據this thread,排除在Git的sparse-checkout
feature應該被實施。是嗎?Git稀疏結賬排除
假設我有以下結構:
papers/
papers/...
presentations/
presentations/heavy_presentation
presentations/...
現在我想排除結賬presentations/heavy_presentation
,而留在結賬休息。我還沒有設法讓這個運行。什麼是正確的語法?
根據this thread,排除在Git的sparse-checkout
feature應該被實施。是嗎?Git稀疏結賬排除
假設我有以下結構:
papers/
papers/...
presentations/
presentations/heavy_presentation
presentations/...
現在我想排除結賬presentations/heavy_presentation
,而留在結賬休息。我還沒有設法讓這個運行。什麼是正確的語法?
我本來期望類似下面的工作:
/*
!presentations/heavy_presentation
但事實並非如此。我也嘗試了許多其他組合。我認爲,排除不正確實施,大約有它(仍然)錯誤
喜歡的東西:
presentations/*
!presentations/heavy_presentation
做的工作,雖然,你會得到的演示沒有heavy_presentation文件夾中。
因此,解決方法是明確包含所有其他內容。
我有同樣的問題。我喜歡的東西固定它:
!presentations/heavy_presentation
presentations/*
我如何理解它的工作原理: 它讀取的規則文件規則。如果包含了某些內容,它將包含包含該單詞的所有路徑,並且直到稀疏結帳結束時它不再更改其狀態。如果您在包含之前添加排除規則,我認爲它會首先刪除文件,並將所有標記爲包含。
我不完全確定,這是我根據自己的經驗假定的,一直在爲我工作。我希望它能幫助別人。
可悲的是上面沒有爲我工作,所以我花了很長時間嘗試sparse-checkout
文件的不同組合。
在我的情況下,我想用IntelliJ IDEA配置跳過文件夾。
這裏是我做過什麼:
運行git clone https://github.com/myaccount/myrepo.git --no-checkout
運行git config core.sparsecheckout true
創建.git\info\sparse-checkout
與以下內容
!.idea/*
!.idea_modules/*
/*
運行 'git的結帳 - ' 來獲得全部文件。
讓它工作的關鍵是在文件夾名後加/*
。
我有git 1.9
謝謝,確認。我編輯了您的帖子,添加了另一個無法使用的示例。 – krlmlr 2012-03-07 14:26:40