Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎么能让git不把它们当作子项目呢_Git_Composer Php - Fatal编程技术网

我怎么能让git不把它们当作子项目呢

我怎么能让git不把它们当作子项目呢,git,composer-php,Git,Composer Php,我使用的是PHP/Composer,我需要提交依赖项-我曾经说过,通过将以下内容添加到.gitignore,您可以防止子项目出现问题: vendor/.git 但是,当我尝试暂存和提交时,仍然将vendor/中的文件夹视为子项目 有没有办法解决这个问题?vendor/中的所有文件夹以前均未提交。我不想手动删除vendor中的.git文件夹。您永远不应该将vendor的内容添加到您的vcs中,这会让糟糕的事情发生。 此外,除了低质量的工作流之外,绝对没有用例,这使得这是必要的 如果您仍然想这样做

我使用的是PHP/Composer,我需要提交依赖项-我曾经说过,通过将以下内容添加到.gitignore,您可以防止子项目出现问题:

vendor/.git
但是,当我尝试暂存和提交时,仍然将
vendor/
中的文件夹视为子项目


有没有办法解决这个问题?
vendor/
中的所有文件夹以前均未提交。我不想手动删除
vendor

中的.git文件夹。您永远不应该将vendor的内容添加到您的vcs中,这会让糟糕的事情发生。
此外,除了低质量的工作流之外,绝对没有用例,这使得这是必要的

如果您仍然想这样做,请使用--preference dist,并确保没有通过VCS安装任何软件包


但是,如果您需要这样做,您的工作流程是错误的,并且是不完整的。

如果您确实删除了这些.git文件夹,它就会工作。它可能不起作用,因为没有可忽略的
vendor/.git
文件夹,但有大量的
vendor/xxx/yyy/.git
文件夹。您应该尝试
——首选dist
。如果您可以避免克隆整个Git repo,那么速度也会更快。@Git文件夹/filename中的Sven将忽略该文件夹或其子文件夹中该文件的所有内容。此外,速度不是问题,约束与工作相关,大多数软件包没有标记。我认为正确的.gitignore模式应该是
vendor/**/.git
,其中
**
为零或任意数量的目录。这种模式确实存在,我认为没有通配符的模式的行为就像有通配符一样是违反直觉的。