2011-08-04 138 views
6

我已經使用TortoiseSVN倉庫。其中有.svn文件夾位於根目錄和所有子文件夾中。我創建了一個github存儲庫並推送了整個存儲庫。如何從github倉庫中刪除.svn文件夾

問題是,在我的本地副本中,我從回購中刪除了.svn文件夾,然後提交了更改。它不會從存儲庫的早期版本中刪除的文件夾...

我知道如何從GitHub庫從這裏刪除敏感數據:

http://help.github.com/remove-sensitive-data/

但是,如果我用這個我必須遵循這個過程超過10次(而且這樣做浪費時間)...所以我想知道任何人都可以告訴我如何從一個回合中刪除整個回購中的所有.svn文件夾?

回答

6

我需要最近做到這一點,我只是從我的回購我的根目錄運行以下命令:

find . -name '.svn' | xargs git rm -rf --ignore-unmatch 

這遞歸搜索的.svn文件夾的所有事件,並刪除它和它的內容遞歸。如果參數--ignore-unmatch沒有在存儲庫中找到指定的文件,則會阻止git窒息。

接下來要做的事情當然是將.svn添加到您的.gitnore中,以便您不會錯誤地再次開始跟蹤這些文件。

4

試試這個:

find . -type d -name .svn | xargs git rm -rf --ignore-unmatch 
0

最近,我不得不這樣做我的Windows機器上。這是可比較的PowerShell命令。可能有一個更好的辦法,但我很笨拙的用PS:

gci -Recurse -filter ".svn" | ?{ $_.PSIsContainer } | Select-Object FullName | %{ git rm -rf --ignore-unmatch $_.FullName } 

GCI(GET-兒童項目)會發現所有名爲「.svn」這樣的事情,在PSIsContainer檢查自己的目錄,選擇-Object應該只是取出FullName屬性,然後將git rm -rf命令放在foreach循環中。