git - 在本地提交分支中的子目录,但在推送到远程分支时不包含它?
问题描述
我在一个私有但共享的 GitHub 项目中有一个目录,其中包含我想在本地提交的敏感数据,以便在我备份本地硬盘驱动器时备份它,但不会推送到远程分支。有没有办法使用 Git 设施/功能进行设置?
使用.gitignore文件不起作用,因为据我所知,本地提交与推送到远程分支的内容没有不同的行为或不同的.gitignore文件。
如果这是不可能的,那么您如何处理同样的问题?
请注意,这不是我可以放入 ENVIRONMENT 变量的数据。它是一组包含敏感数据的文件。
解决方案
您可以创建另一个不会跟踪远程分支的本地分支,并在该本地分支上提交您的敏感文件。
git checkout -b localOnly
git add sensitiveFile
git commit
git checkout originalBranch
git push (this pushes originalBranch but not localOnly)
您还可以使用 .gitignore 文件来帮助确保您不会意外地将敏感文件添加到将被推送的分支中。
请注意,当您切换回 originalBranch 时,git 可能会从您的工作树中删除敏感文件。在这种情况下,您可以将其放回您的工作树中:
git checkout localOnly sensitiveFile
推荐阅读
- android-studio - 隐藏和显示 Tomtom 地图标记
- java - Java FX 防止 UI 冻结
- json - 使用 get / http / subscribe 的功能不起作用,为什么?
- node.js - Lambda - 将 CSV 从 S3 导入 RDS MySQL
- python - 迭代 NumPy 数组的最快/正确方法
- android - 活动可见后将项目插入 RecyclerView
- windows - Windows 上的 Ghostscript 导致 -dPDFSETTINGS 的选项无效
- angular - Vue js 是否有像 Angular 一样的应用初始化程序?
- ios - iOS 13 持续后台位置更新
- python - How to set a bias on multiple methods within a class?