2014-08-31 153 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