我怎么能让git不把它们当作子项目呢
我使用的是PHP/Composer,我需要提交依赖项-我曾经说过,通过将以下内容添加到.gitignore,您可以防止子项目出现问题:我怎么能让git不把它们当作子项目呢,git,composer-php,Git,Composer Php,我使用的是PHP/Composer,我需要提交依赖项-我曾经说过,通过将以下内容添加到.gitignore,您可以防止子项目出现问题: vendor/.git 但是,当我尝试暂存和提交时,仍然将vendor/中的文件夹视为子项目 有没有办法解决这个问题?vendor/中的所有文件夹以前均未提交。我不想手动删除vendor中的.git文件夹。您永远不应该将vendor的内容添加到您的vcs中,这会让糟糕的事情发生。 此外,除了低质量的工作流之外,绝对没有用例,这使得这是必要的 如果您仍然想这样做
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
,其中**
为零或任意数量的目录。这种模式确实存在,我认为没有通配符的模式的行为就像有通配符一样是违反直觉的。