有没有办法反向忽略 git 服务器(例如 GitHub)上的文件?

Is there a way to reverse ignore files on a git server (such as GitHub)?

问题

有没有办法定义模式以不从 git clonegit fetch 上的 git 服务器拉取文件?这可能被称为“反向 git 忽略”。

问题

我有一个 dotfiles 的存储库,我想在名为 README.md 的项目的根目录中有一个自述文件。使用此文件 GitHub 可以以漂亮的格式显示它。

由于要在 *NIX 机器上的用户主文件夹中签出回购协议,所有点文件都将按预期隐藏,但 README.md 不会,这不是我们想要的.

所以我不希望在克隆回购协议时拉取 README.md。如何实现?

备选方案

如果无法实现上述预期结果,是否可以通过其他方法将 README.md 隐藏或隐藏在主文件夹中?

问题示例

如果有帮助,这是我正在研究的dotfiles repository

是的,有一种方法可以创建部分克隆。您必须以特殊方式克隆,提供过滤器规范,以便 git 知道要获取哪些文件以及要忽略哪些文件。

您可以在文档中找到所有相关信息。 https://git-scm.com/docs/partial-clone

虽然可以不下载带有部分克隆的文件,但一旦检出工作树,这些文件将被隐式下载。如果您的目标是忽略点文件存储库的某些文件,您有一些选择:

  • 设计存储库,使其不直接检出到用户的主目录,而是检出到其他目录,并使用脚本将文件复制到位。这通常是推荐的方法。
  • .gitattributes中将README.md标记为export-ignore并使用git archive将文件复制到位。
  • 使用稀疏结帐从结帐中排除 README.md。有关详细信息,请参阅 git-sparse-checkout(1)
  • 接受无关的 README.md 文件。