首页 > 解决方案 > 在本地提交分支中的子目录,但在推送到远程分支时不包含它?

问题描述

我在一个私有但共享的 GitHub 项目中有一个目录,其中包含我想在本地提交的敏感数据,以便在我备份本地硬盘驱动器时备份它,但不会推送到远程分支。有没有办法使用 Git 设施/功能进行设置?

使用.gitignore文件不起作用,因为据我所知,本地提交与推送到远程分支的内容没有不同的行为或不同的.gitignore文件。

如果这是不可能的,那么您如何处理同样的问题?

请注意,这不是我可以放入 ENVIRONMENT 变量的数据。它是一组包含敏感数据的文件。

标签: gitgit-commit

解决方案


您可以创建另一个不会跟踪远程分支的本地分支,并在该本地分支上提交您的敏感文件。

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

推荐阅读