无需推送/pull 存储库上的 git 版本控制文件

标签 git

我在 git 中跟踪了我的网站/cms,它运行良好,除了我的 .htaccess 文件。该文件需要有很大的不同,具体取决于我在哪个服务器上运行代码(本地/测试/实时)。因此,现在我已经将 .htaccess 完全排除在 git 之外(它在我的 .gitignore 文件中)。但偶尔它会丢失,无论如何它是站点的一部分,我希望它保持跟踪,但我不希望它被推送到远程存储库,在那里它可能会覆盖其他服务器的正确配置。有没有办法让 git 跟踪文件,但仅限于本地? (或者有什么其他办法解决问题?)

最佳答案

您可以使用 Git 的 sparse checkout 来做到这一点特征。在需要特殊的、未跟踪的 .htaccess 文件的存储库中运行以下命令:

git config core.sparsecheckout true
echo '*' >.git/info/sparse-checkout
echo '!.htaccess' >>.git/info/sparse-checkout
git read-tree --reset -u HEAD

这将首先删除 现有的.htaccess 文件。但现在从 Git 的角度来看它被忽略了,所以你可以把一个机器特定的放在那里,Git 不会打扰你。

然后您可以从一些其他 存储库(比如您的本地存储库)添加和管理一个.htaccess 文件。 Git 会很乐意跟踪这个文件并将其保存在存储库中,但是在具有上述稀疏 checkout 配置的机器上,Git 将忽略其中的本地 .htaccess 文件工作目录,即使它与存储库中的不同。

关于无需推送/pull 存储库上的 git 版本控制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4638078/

相关文章:

git - 如何删除TortoiseGit中的URL历史记录?

git - git 中开发分支和生产分支之间的差异存储在哪里?

linux - 是否可以将我当前提交的 SHA 添加到核心文件模式?

git - 如何从 git 中较新的提交中删除标签?

git - cloudbees 中的 jenkins 远端意外挂断

git - 如何从分支中提取最新的代码副本?

git - Visual Studio 2013 github同步错误403

git - 备份 GitHub 存储库

git - 查找包含特定提交的 merge 提交

git - 从裸远程仓库克隆时缺少提交