能否创建远程专属.gitignore?实现向GitHub与Heroku差异化推送文件
实现「文件仅推送到Heroku,不推送到GitHub」的简便方法
嘿,这个需求其实用Git和Heroku的原生配置就能轻松搞定,不用每次推送都修改.gitignore,分两步操作就行:
1. 让GitHub永久忽略目标文件
首先我们要确保这个文件不会被推送到GitHub:
- 把目标文件名添加到仓库根目录的
.gitignore文件里,比如你要忽略的是prod-config.js,就在.gitignore里加一行:prod-config.js - 如果这个文件之前已经被Git追踪过了,得先取消追踪(不会删除本地文件),执行命令:
git rm --cached prod-config.js - 提交这个
.gitignore的修改并推送到GitHub,之后这个文件就再也不会出现在GitHub的远程仓库里了。
2. 让Heroku不忽略这个文件
Heroku默认会遵循.gitignore的规则,但我们可以用Heroku专属的.slugignore文件来覆盖这个规则:
- 在仓库根目录创建
.slugignore文件,执行命令:touch .slugignore - 打开
.slugignore,写入一行否定忽略的规则,对应你刚才在.gitignore里加的文件:!prod-config.js - 把
.slugignore提交到Git,然后推送到GitHub和Heroku都没问题——这个文件本身是允许被追踪的,不会影响其他逻辑。
这样设置之后,你正常执行git push heroku main时,目标文件会被推送到Heroku;而git push origin main时,这个文件会被自动忽略,完全不用每次修改配置~
内容的提问来源于stack exchange,提问作者LittleWhole
相关产品推荐
相关产品推荐

