我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2020-05-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

文章版本: Enterprise Server 2.17

复刻仓库

A fork is a copy of a repository. 通过复刻仓库,您可以自由地尝试更改而不会影响原始项目。

本文内容

复刻最常见的用法是对其他人的项目提出更改或将其他人的项目用作自己创意的起点。

对其他人的项目提出更改

For example, you can use forks to propose changes related to fixing a bug. 无需为您发现的漏洞创建议题,您可以:

  • 复刻仓库
  • 进行修复
  • 向项目所有者提交拉取请求。

将其他人的项目用作自己创意的起点。

Open source software is based on the idea that by sharing code, we can make better, more reliable software. For more information, see the “About the Open Source Initiative" on the Open Source Initiative.

When creating your public repository from a fork of someone's project, make sure to include a license file that determines how you want your project to be shared with others. For more information, see “Choose an open source license" at choosealicense.

为深入了解开源,特别是如何创建和发展开源项目,我们制作了开源指南,它将推荐关于创建和维护开源项目仓库的最佳实践,帮助您培养一个健康发展的开源社区。 您还可以免费学习关于维护开源社区的 GitHub Learning Lab 课程。

Note: 您可以使用 GitHub Desktop 复刻仓库。 更多信息请参阅“从 GitHub Desktop 克隆和复刻仓库”。

复刻示例仓库

复刻仓库是一个简单的两步过程。 We've created a repository for you to practice with.

  1. 在 您的 GitHub Enterprise Server 实例 上,导航到 octocat/Spoon-Knife 仓库。
  2. 在页面的右上角,单击 Fork(复刻)
    复刻按钮

让复刻保持同步

You might fork a project to propose changes to the upstream, or original, repository. 在这种情况下,最好定期将您的复刻与上游仓库同步。 为此,您需要在命令行上使用 Git。 You can practice setting the upstream repository using the same octocat/Spoon-Knife repository you just forked.

第 1 步:设置 Git

如果尚未设置 Git,您应该先设置它。 不要忘记从 Git 设置向 您的 GitHub Enterprise Server 实例 验证

第 2 步:创建复刻的本地克隆

现在,您有了 Spoon-Knife 仓库的复刻,但您的计算机上还没有该仓库中的文件。 让我们在计算机上本地创建复刻的克隆。

  1. 在 GitHub Enterprise 上,导航到 Spoon-Knife 仓库的复刻

  2. 在仓库名称下,单击 Clone or download(克隆或下载)

    克隆或下载按钮

  3. 要使用 HTTPS 克隆仓库,在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 。 要使用 SSH 密钥克隆仓库 单击 Use SSH(使用 SSH),然后单击

    克隆 URL 按钮

  4. 打开 Terminal(终端)Terminal(终端)Git Bash

  5. 键入 git clone,然后粘贴先前复制的 URL。 它将如下所示,使用您的 GitHub Enterprise 用户名替换 YOUR-USERNAME

    $ git clone https://主机名/YOUR-USERNAME/Spoon-Knife
  6. Enter 键。 将创建您的本地克隆。

    $ git clone https://主机名/YOUR-USERNAME/Spoon-Knife
    > Cloning into `Spoon-Knife`...
    > remote: Counting objects: 10, done.
    > remote: Compressing objects: 100% (8/8), done.
    > remove: Total 10 (delta 1), reused 10 (delta 1)
    > Unpacking objects: 100% (10/10), done.

Now, you have a local copy of your fork of the Spoon-Knife repository.

第 3 步:配置 Git 以将您的复刻与原始 Spoon-Knife 仓库同步

为了对原始仓库提议更改而复刻项目时,您可以配置 Git 以将更改从原始或上游仓库拉取到复刻的本地克隆。

  1. 在 GitHub Enterprise 上,导航到 octocat/Spoon-Knife 仓库。

  2. 在仓库名称下,单击 Clone or download(克隆或下载)

    克隆或下载按钮

  3. 要使用 HTTPS 克隆仓库,在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 。 要使用 SSH 密钥克隆仓库 单击 Use SSH(使用 SSH),然后单击

    克隆 URL 按钮

  4. 打开 Terminal(终端)Terminal(终端)Git Bash

  5. 将目录更改为您在第 2 步:创建复刻的本地克隆中克隆复刻的位置。

    • 要转到主目录,请只键入 cd,不要键入其他文本。
    • 要列出当前目录中的文件和文件夹,请键入 ls
    • 要进入列出的某个目录,请键入 cd your_listed_directory
    • 要回到上一个目录,请键入 cd ..
  6. 键入 git remote -v,然后按 Enter 键。 您将看到当前为复刻配置的远程仓库。

    $ git remote -v
    > origin  https://主机名/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://主机名/YOUR_USERNAME/YOUR_FORK.git (push)
  7. 键入 git remote add upstream,然后粘贴您在第 2 步中复制的 URL 并按 Enter 键。 它将如下所示:

    $ git remote add upstream https://主机名/octocat/Spoon-Knife.git
  8. 要验证为复刻指定的新上游仓库,请再次键入 git remote -v。 您应该看到复刻的 URL 为 origin,原始仓库的 URL 为 upstream

    $ git remote -v
    > origin    https://主机名/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin    https://主机名/YOUR_USERNAME/YOUR_FORK.git (push)
    > upstream  https://主机名/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
    > upstream  https://主机名/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

现在,您可以使用一些 Git 命令使您的复刻与上游仓库保持同步。 更多信息请参阅“同步复刻”。

后续步骤

You can make any changes to a fork, including:

  • Creating branches: Branches allow you to build new features or test out ideas without putting your main project at risk.
  • 打开拉取请求:如果您希望回馈原始仓库,您可以通过提交拉取请求请求原作者将您的复刻拉取到他们的仓库。

另找一个仓库进行复刻

复刻仓库,开始参与项目。 您可以将任何公共仓库复刻到您的用户帐户或任何您拥有仓库创建权限的组织。 更多信息请参阅“组织的权限级别”。

您可以将您具有访问权限的任何私有仓库复刻到您的用户帐户,以及 GitHub Team 或 GitHub Enterprise 上您拥有仓库创建权限的任何组织。 无法将私有仓库复刻到使用 GitHub Free 的组织。

祝贺

您现在已经复刻了仓库、练习了克隆复刻并配置了上游仓库。 接下来您要做什么?

问问别人

找不到要找的内容?

联系我们