如何在Git仓库保存.gitignore忽略文件且不在GitHub显示
可行解决方案
以下是针对你的需求的两种可落地实现方案:
方案1:仅需本地切换分支无需手动拷贝文件,不需要多设备同步
这类被.gitignore标记的本地文件,默认情况下Git切换分支时不会主动删除,如果你之前切分支会丢失文件,大概率是你使用了git checkout .、git clean这类强制清理工作区的命令。你只需调整清理命令参数即可:
- 执行
git clean时加上-e参数跳过你要保留的忽略文件,示例:git clean -f -e .env -e config.local.js -e cache/
调整后清理工作区不会删掉你指定的忽略文件,切换分支时也不需要重新手动拷贝。 - 如果你需要临时存储这些文件、切换分支后自动恢复,也可以用专属stash实现:
- 首次整理好所有忽略文件后执行
git stash push --include-untracked -m "local-ignored-backup" - 每次切完分支执行
git stash apply stash^{/local-ignored-backup}即可一键恢复所有文件,所有内容仅存在本地Git目录,不会上传到GitHub。
- 首次整理好所有忽略文件后执行
方案2:需要多设备同步这些文件,同时不在GitHub公开显示
你可以用私有子模块方案实现:
- 操作步骤:
- 新建一个私有GitHub仓库,把所有需要同步的忽略文件上传到这个私有仓库
- 回到本地公开仓库目录,执行
git submodule add 私有仓库地址 忽略文件本地存放路径 - 把子模块的本地存放路径、以及主仓库根目录生成的
.gitmodules文件都加入主仓库的.gitignore,不要把这两项内容提交到公开仓库 - 后续切换分支后,只需执行一次
git submodule update --init就能自动拉取所有忽略文件,无需手动拷贝
- 该方案下公开仓库只会记录本地Git配置,不会对外展示任何私有子模块的文件内容、也不会泄露私有仓库地址,完全符合不在GitHub展示的要求。
注意:不要直接用
git add -f强制提交被忽略的文件到公开仓库,即使后续再更新.gitignore规则,文件仍然会存在Git提交历史中,在GitHub上可以被查到,不符合你的需求。
内容的提问来源于stack exchange,提问作者Saman_Griffiths
相关产品推荐
相关产品推荐

