2014-08-31 1286 views
2

我使用的作曲家,發展我想保持git的文件夾中的供應商目錄中,所以我可以跟蹤diff文件等,所以我的項目結構是:如何讓git忽略vendor /下的.git文件夾?

projectroot/ 
    .gitignore 
    file1 
    file2 
    vendor/ 
    dir1/ 
     module1/ 
     .git/ 
     module1file1 
     module1file2 
     ... 
    dir2/ 
     module2/ 
     .git/ 
     module2file1 
     ... 

我想承諾git,這些文件:

file1 
file2 
vendor/dir1/module1/module1file1   
vendor/dir1/module1/module1file2  
vendor/dir2/module2/module2file1   
... 

我的projectroot/.gitignore文件應該是什麼?從the composer docs我試圖

vendor/*.git 

vendor/*/.git 

但在這兩種情況下,git的1.8.3仍然希望提交vendor/dir1/module1vendor/dir2/module2爲子模塊,在這裏我要提交的文件,而不是下面。

在這種情況下應該使用.gitignore語法?

+0

嘗試'vendor/** /。git'? – Sisir 2015-08-19 07:15:33

回答

1

我把vendor/放到.gitignore文件中 - 其他 - 然後,如果我想編輯一個我帶入Composer的庫(除非它拉入'dist'檔案文件版本),我可以這樣做,它仍然有庫.git目錄。由於該庫是它自己的回購庫,我可以根據需要進行編輯和推送,但它仍然可以從頂層應用程序(或庫)中使用。

+2

我希望將供應商文件(例如,'vendor/dir1/module1/module1file1')直接提交給master repo,以便我可以一目瞭然地看到通過'git diff'更改了哪些內容。由於供應商回購是'/ vendor'下的幾個層次,我無法通過查看'/ vendor'來查看更改,並且需要手動遞歸到每個回購並逐個檢查。但也許這就是人們通常用作曲家做的事情? – 2014-09-02 19:42:41