Heroku和GitHub的单独gitignore文件?

时间:2019-06-15 07:31:46

标签: git github heroku gitignore

我的heroku应用程序有一个文件,但是我不想在我的GitHub存储库中找到一个文件。

有什么办法可以使.gitignore仅在推送到GitHub时使用?

此外,还有其他方法可以避免将一个文件推送到GitHub吗?

2 个答案:

答案 0 :(得分:1)

如果您已经跟踪了此文件,则在推送到GitHub之前将其删除(甚至在.gitignore中忽略它),不会将其从推送的存储库的历史记录中删除。< / p>

这意味着了解为什么您不想在GitHub上保存该文件很重要。

如果出于安全原因,因为其中包含敏感信息,则您可能具有:

  • more work to do
  • 要将文件本地化到任何本地存储库之外,以确保不包含该文件。

通常,不,对于两个不同的远程存储库,没有条件/单独的.gitignore

在您的情况下,您可能必须编写git push操作脚本才能与as in here一起玩,并与git update-index --(no-)assume-unchanged <file>一起玩。

答案 1 :(得分:1)

VonC的答案很好,但是这里有更多信息。

  

有什么办法可以使.gitignore仅在推送到GitHub时使用?

.gitignore从未与git push一起发挥作用:

  • git push commits 上运行,因此,如果要在Heroku构建中包含文件,则必须提交
  • Git的ignore系统只会阻止跟踪文件;它对跟踪的文件没有影响

从理论上讲,您可以维护一个长期运行的heroku分支,该分支一直与master(或您的主分支所在的任何分支)保持最新状态,但是还包含仅Heroku的文件,但是在我看来没有理由跳过那些篮球。只需包含您的Procfile或您的主存储库中的任何内容即可。这有什么害处?

请注意,如果遇到相反的情况,而您想在Heroku 上省略某些跟踪文件,则可以使用.slugignore file

  

如果存储库包含运行应用程序不必要的文件,则可能希望将这些文件添加到存储库根目录中的.slugignore文件中。您可能希望从该文件中排除的文件示例:

     
      
  • 艺术资源(如.psd文件)
  •   
  • 设计文档(如.pdf文件)
  •   
  • 测试数据
  •   
     

...

     

.slugignore文件导致文件在您将代码推送到Heroku之后并且在buildpack运行之前被删除。