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 历史记录。在这种情况下,您可以使用方便的 存储库复制器 快速复制存储库!您将需要创建一个用户访问令牌,您可以在 安全文档 中了解更多信息。

使用 Git 历史记录复制(派生)

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

**请注意,您需要 安装 Git LFShuggingface_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 [email protected]: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
huggingface-cli 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 上