【发布时间】:2015-05-06 20:53:33
【问题描述】:
我已将 git 存储在 bitbucket 上并在几个地方工作(工作/家庭台式机/笔记本电脑/2 个服务器)。 我总是推到远程并从其他机器上拉。 问题 - 仅在一台机器上,有一个文件我不希望每次都从 git 中提取/下载它。 可以做什么?
【问题讨论】:
-
是什么样的文件?
-
文本文件,其中包含运行此代码的本地计算机的配置。
我已将 git 存储在 bitbucket 上并在几个地方工作(工作/家庭台式机/笔记本电脑/2 个服务器)。 我总是推到远程并从其他机器上拉。 问题 - 仅在一台机器上,有一个文件我不希望每次都从 git 中提取/下载它。 可以做什么?
【问题讨论】:
这是不可能的。 git 需要存储库的精确副本才能正常工作。所有 git 对象(文件、目录树、提交...)都会计算对象的校验和。这用于创建标识符并额外强制存储库的完整性。因此,忽略一个文件将创建全新的存储库。
【讨论】:
这很hacky,但理论上应该可以使用git hooks。
在项目的.git 文件夹中,可以定义要在 git 流的不同点运行的脚本。
在这台特定的机器上,pull 脚本会在 pull 后立即删除文件。另一个脚本会在推送之前检查文件,因此它不会提交删除文件。
最后,您可能想告诉这台机器上的 git 使用 git's assume-unchanged feature 忽略此文件丢失的事实。
【讨论】: