【问题标题】:How do I push files specified in .gitignore?如何推送 .gitignore 中指定的文件?
【发布时间】:2012-08-01 01:26:16
【问题描述】:

如果我的 .gitignore 中有一个“供应商”目录,有没有办法可以设置一个遥控器,以便在我推送时接收该目录?

【问题讨论】:

  • “无论如何都会收到该目录” - 抱歉,您是什么意思?一个目录要么被忽略,要么不被忽略......
  • 这可能是根本不可能的。在这种情况下,如果您对此持肯定态度,请随时回答我的问题:)
  • 我不是 100% 确定你在追求什么。我已经发布了来自其他 SO Q 的一些可能性的答案。如果这不是您所追求的,请告诉我们

标签: git gitignore git-push composer-php phpfog


【解决方案1】:

您的.gitignore 文件与推送无关。它被git statusgit add 之类的东西用来确定哪些文件应该是(或可能是)未来提交的一部分。您可以使用git add 命令添加被忽略的内容;除非您使用 -f 选项,否则它将引发错误:

The following paths are ignored by one of your .gitignore files:
somefilename
Use -f if you really want to add them.
fatal: no files added

将文件添加到存储库后,它将与任何其他更改一起推送。

【讨论】:

  • 问题是,我不想将此目录提交到我的仓库,我只想将它包含在推送到特定远程 (appfog) 中。在这种情况下,它是一个具有自动管理依赖项的目录。
  • 没关系,但.gitignore 文件仍然无法控制推送到哪里。
【解决方案2】:

我认为您正在寻找的功能可以通过使用一个分支来部署到您的云提供商来实现。

设置一个包含您的.gitignore 文件的dev 分支,将您的增量工作检查到该分支中。

将您的 dev 分支合并到不包含 .gitignore 文件但包含供应商目录的 deploy 分支中。

完成合并后,从 deploy 分支推送到远程部署。

【讨论】:

  • 迄今为止我听说过的最佳解决方案。谢谢
【解决方案3】:

使用-f强制添加。

这是一个例子。

git add -f path/to/file

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2016-03-17
    • 1970-01-01
    • 2019-08-20
    相关资源
    最近更新 更多