git - 是否可以从 `git push` 中排除文件,但将它们保留在本地存储库中?

标签 git version-control repository

在我的主目录中,我在本地 git 存储库中有文件,因为我想在版本控制下跟踪它们。

这些文件中的大部分我想推送到远程存储库,但有一些我想只保留在我的本地存储库中(它们包含轻微敏感的信息)。

我如何使用 git 实现这一点?我可以配置一个“.gitignore-for-push”文件吗?我不能使用本地 .gitignore 文件,因为它会完全排除这些文件被跟踪。

ps:我知道问题Is there an exclude file-equivalent... ,但答案在我无法使用的 .gitignore 路径下。其他问题Exclude specific files when pushing...仅回答 git+heroku 的特定情况,而不是单独的 git。

最佳答案

您可以继续并实际跟踪这些文件(没有敏感信息),但随后使用:

git update-index --assume-unchanged <file>

在每个文件上。然后您可以继续将敏感信息添加到每个文件,但 Git 不会看到文件已更改,并且不会尝试提交(并因此推送)该敏感信息。

要让 Git 再次更新信息,您可以使用:

git update-index --no-assume-unchanged <file>

关于git - 是否可以从 `git push` 中排除文件,但将它们保留在本地存储库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895712/

相关文章:

git push 让我登录到 github。致命的 : HttpRequestException encountered

Git:如何从 'detached HEAD' 状态返回

git 恢复在 merge 期间删除的单个文件

git - 如何在所有提交中更新子模块 url

git - 私有(private)管理公共(public)项目 - GIT

java - 你如何让 Git 与 IntelliJ 一起工作?

git - 使用 Git 保留我的应用程序的公共(public)和私有(private)版本

eclipse - 将 Sourcegear Vault 与 Eclipse 结合使用?

linux - GitHub 帮助 - 将文件夹推送到存储库