【问题标题】:How can I have git not treat these as subproject我怎样才能让 git 不将这些视为子项目
【发布时间】:2014-01-05 23:02:05
【问题描述】:

我正在使用 PHP/Composer 并且需要提交依赖项 - 我有 read on the composer site 您可以通过将以下内容添加到 .gitignore 来防止子项目周围的问题:

vendor/.git

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

有没有办法解决这个问题? vendor/ 中的所有文件夹之前都未提交过。我想在不手动删除 vendor 中的 .git 文件夹的情况下执行此操作。

【问题讨论】:

  • 如果你真的删除了这些 .git 文件夹,它就可以工作。而且它可能不起作用,因为没有要忽略的 vendor/.git 文件夹,但是有很多 vendor/xxx/yyy/.git 文件夹。
  • 你应该尝试--prefer-dist。如果您可以避免克隆整个 Git 存储库,那么事情也会变得更快。
  • @Sven in git folder/filename 将忽略该文件夹或其子文件夹中该文件的每个出现。此外,速度不是问题,限制与工作有关,大多数包没有标签
  • 我认为正确的 .gitignore 模式在这里应该是 vendor/**/.git** 是零或任意数量的目录。这种模式确实存在,我认为没有通配符的模式表现得像有通配符一样违反直觉。

标签: git composer-php


【解决方案1】:

您永远不应该将供应商的内容添加到您的 vcs 中,这会导致不好的事情发生。
此外,除了低质量的工作流程之外,绝对没有用例,这使得这样做是必要的。

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

但是,如果你需要这样做,你的工作流程是错误的并且被破坏了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-07
    • 2015-09-14
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2014-10-16
    相关资源
    最近更新 更多