如何使Git忽略vendor/目录下的.git文件夹?

5

我正在使用composer,并且为了开发,我希望将.git文件夹保留在vendor目录中,以便跟踪区别等等。因此,我的项目结构如下:

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        
...

我的项目根目录下的.gitignore文件应该是什么?从composer文档中,我尝试了以下内容:
vendor/*.git

and

vendor/*/.git

但是在这两种情况下,git 1.8.3 仍然想将 vendor/dir1/module1vendor/dir2/module2 作为子模块提交,而我想要提交其中的文件。

那么,在这种情况下 .gitignore 语法应该怎样写呢?


尝试使用 vendor/**/.git - Sisir
1个回答

1
我将vendor/加入了.gitignore文件中,以便编辑使用Composer引入的库(除非它拉取了“dist”归档文件版本),这样它仍然会有库的.git目录。由于该库是自己的存储库,因此可以根据需要进行编辑和推送,但仍可从顶级应用程序(或库)中使用。

2
我希望能够直接将供应商文件(例如vendor/dir1/module1/module1file1)提交到主存储库,以便我可以通过git diff一目了然地看到发生了什么变化。由于供应商存储库位于/vendor的几个层级之下,因此我无法通过查看/vendor来查看更改,并且需要手动递归到每个存储库并逐个检查。但也许这就是人们通常使用composer的方式? - Rolf Kaiser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接