Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

后续步骤

以下章节重点介绍了您可能会发现有用的功能和附加信息,以充分利用 Hugging Face Hub 上的 Git 存储库。

如何通过编程方式管理存储库

Hugging Face 支持通过 huggingface_hub使用 Python 访问存储库。我们探索过的操作,例如下载存储库和上传文件,都可以通过该库以及其他有用的函数获得!

如果您更喜欢直接使用 git,请阅读以下章节。

了解更多关于 Git 的信息

如果您想继续学习 Git,可以访问 这个 Git 教程。要了解更多关于 Git 的背景知识,您可以查看 GitHub 的 Git 指南

如何使用分支

为了有效地协同使用 Git 存储库,并在不发布不成熟代码的情况下处理功能,您可以使用 **分支**。分支允许您将“正在进行的工作”代码与“生产就绪”代码分开,并且具有让多个人在一个项目上工作而不会经常与彼此的贡献发生冲突的额外好处。您可以使用分支将实验隔离在自己的分支中,甚至可以 采用团队范围内的分支管理实践

要了解 Git 分支,您可以尝试 Learn Git Branching 交互式教程

使用标签

Git 允许您对提交进行 *标记*,以便您可以轻松记录项目中的里程碑。因此,您可以使用标签标记 Hub 存储库中的提交!要了解如何使用标签,您可以访问 这篇 DevConnected 文章

除了方便识别存储库历史中的重要提交外,使用 Git 标签还可以进行 A/B 测试、克隆特定标签处的存储库等等!`huggingface_hub` 库也支持使用标签,例如从特定标签的提交下载文件

如何复制或分叉存储库(包括 LFS 指针)

如果您想复制存储库,根据您是否要保留 Git 历史记录,有两种选择。

不带 Git 历史记录的复制

在许多场景中,如果您想要特定代码库的副本,您可能不关心之前的 Git 历史记录。在这种情况下,您可以使用方便的 Repo Duplicator 快速复制存储库!您必须创建一个用户访问令牌,您可以在 安全文档中阅读更多相关信息。

带 Git 历史记录的复制(分叉)

保留提交历史记录的存储库副本称为 *分叉*。您可以选择分叉自己的存储库,但如果您想对其他人的项目进行修改,分叉也很常见。

请注意,您需要安装 Git LFS`huggingface_hub` CLI 才能遵循此过程。当您想要分叉或变基包含 LFS 文件的存储库时,您不能使用您可能熟悉的常规 Git 方法,因为您需要小心不要破坏 LFS 指针。分叉可能需要时间,具体取决于您的带宽,因为您必须在您的分叉中获取并重新上传所有 LFS 文件。

例如,假设您有一个上游存储库 **upstream**,并且您刚刚在 Hub 上创建了自己的存储库,在本例中为 **myfork**。

  1. https://huggingface.co 创建目标存储库(例如 **myfork**)

  2. 克隆您的分叉存储库

git clone git@hf.co:me/myfork
  1. 获取非 LFS 文件
cd myfork
git lfs install --skip-smudge --local # affects only this clone
git remote add upstream git@hf.co:friend/upstream
git fetch upstream
  1. 获取大文件。这可能需要一些时间,具体取决于您的下载带宽
git lfs fetch --all upstream # this can take time depending on your download bandwidth

4.a. 如果要完全覆盖分叉历史记录(应只有初始提交),请运行

git reset --hard upstream/main

4.b. 如果要变基而不是覆盖,请运行以下命令并解决任何冲突

git rebase upstream/main
  1. 准备您的 LFS 文件以进行推送
git lfs install --force --local # this reinstalls the LFS hooks
hf lfs-enable-largefiles . # needed if some files are bigger than 5GB
  1. 最后推送
git push --force origin main # this can take time depending on your upload bandwidth

现在您在 Hub 中有了自己的分叉或变基存储库!

< > 在 GitHub 上更新