Skip to main content

此版本的 GitHub Enterprise 将停止服务 2022-10-12. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

创建存储库分支

分叉是存储库的副本。 通过复刻仓库,您可以自由地尝试更改而不会影响原始项目。

关于分叉

最常见的是,分支用于对其他人的项目提出你没有写入权限的项目的更改,或者使用其他人的项目作为你自己想法的起点。 您可以复刻仓库以创建仓库的副本,并在不影响上游仓库的情况下进行更改。 有关详细信息,请参阅“使用分支”。

对其他人的项目提出更改

例如,可以使用复刻提出与修复 Bug 相关的更改。 无需为你发现的漏洞创建问题,你可以:

  • 创建存储库分支。
  • 进行修复
  • 向项目所有者提交拉取请求。

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

开源软件的理念是通过共享代码,可以开发出更好、更可靠的软件。 有关详细信息,请参阅开放源代码计划上的“关于开放源代码计划”。

有关将开放源代码原则应用于组织在 your GitHub Enterprise Server instance 上的开发工作的详细信息,请参阅 GitHub 的白皮书“内部源简介”。

从其他人的项目复刻创建公共仓库时,请确保包含许可文件以确定您希望与其他人共享项目。 有关详细信息,请参阅 choosealicense 上的“选择开放源代码许可”。

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

先决条件

如果尚未设置,应首先 设置 Git。 不要忘记从 Git 向 your GitHub Enterprise Server instance 设置身份验证

复刻仓库

您可能为了对上游或原始仓库提议更改而复刻项目。 在这种情况下,最好定期将您的复刻与上游仓库同步。 为此,您需要在命令行上使用 Git。 可以使用刚才已创建分支的同一 octocat/Spoon-Knife 存储库来练习设置上游存储库。

  1. 在 your GitHub Enterprise Server instance 上,导航到 octocat/Spoon-Knife 存储库。
  2. 在页面右上角,单击“分支”。 分支按钮
  3. 为分支存储库选择所有者。 创建一个突出显示所有者下拉菜单的新分支页
  4. 默认情况下,分支的名称与其父存储库的相同。 可更改分支的名称以进一步区分它。 创建一个突出显示存储库名称字段的新分支页
  5. 可以选择性地添加分支的说明。 创建一个突出显示说明字段的新分支页
  6. 选择是仅将默认分支还是将所有分支复制到新分支。 对于许多分支场景(例如参与开源项目),你只需复制默认分支。 默认情况下,只复制默认分支。 只复制默认分支的选项
  7. 单击“创建分支”。 突出显示的“创建分支”按钮

注意:如果要从父存储库复制其他分支,可从“分支”页执行此操作 。 有关详细信息,请参阅“在存储库中创建和删除分支”。

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

若要创建存储库的分支,请使用 gh repo fork 子命令。

gh repo fork repository

若要在组织中创建分支,请使用 --org 标记。

gh repo fork repository --org "octo-org"

克隆复刻的仓库

现在,你有了 Spoon-Knife 存储库的分支,但你的计算机本地还没有该存储库中的文件。

  1. 在 your GitHub Enterprise Server instance 上,导航到 Spoon-Knife 存储库的分支。

  2. 在文件列表上方,单击 “代码”。 “代码”按钮

  3. 复制存储库的 URL。

    • 要使用 HTTPS 克隆存储库,在“HTTPS”下单击
    • 要使用 SSH 密钥克隆存储库,包括组织的 SSH 证书颁发机构颁发的证书,请单击“SSH”,然后单击
    • 要使用 GitHub CLI 克隆存储库,请单击“GitHub CLI”,然后单击 用于复制 URL 以使用 GitHub CLI 克隆存储库的剪贴板图标 1. 打开终端终端Git Bash。 4. 将当前的工作目录更改为您想要存储克隆目录的位置。
  4. 键入 git clone,然后粘贴之前复制的 URL。 它将如下所示,使用你的 GitHub Enterprise Server 用户名替换 YOUR-USERNAME

    $ git clone https://hostname/YOUR-USERNAME/Spoon-Knife
  5. Enter。 将创建您的本地克隆。

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

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

若要创建分支的克隆,请使用 --clone 标记。

gh repo fork repository --clone=true
  1. 在“文件”菜单中,单击“克隆存储库” 。

    Mac 应用程序中的克隆菜单选项

    Windows 应用程序中的克隆菜单选项

    1. 单击与要克隆的仓库位置对应的选项卡。 也可以单击 URL 手动输入存储库位置。

    克隆仓库菜单中的 Location(位置)选项卡

    克隆仓库菜单中的 Location(位置)选项卡

    1. 从列表中选择要克隆的仓库。

    克隆仓库列表

    克隆仓库列表

    1. 单击“选择...”并找到要克隆存储库的本地路径。

    选择按钮

    选择按钮

    1. 单击“克隆”。

    克隆按钮

    克隆按钮

配置 Git 以将您的复刻与原始仓库同步

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

  1. 在 your GitHub Enterprise Server instance 上,导航到 octocat/Spoon-Knife 存储库。

  2. 在文件列表上方,单击 “代码”。 “代码”按钮

  3. 复制存储库的 URL。

    • 要使用 HTTPS 克隆存储库,在“HTTPS”下单击
    • 要使用 SSH 密钥克隆存储库,包括组织的 SSH 证书颁发机构颁发的证书,请单击“SSH”,然后单击
    • 要使用 GitHub CLI 克隆存储库,请单击“GitHub CLI”,然后单击 用于复制 URL 以使用 GitHub CLI 克隆存储库的剪贴板图标 1. 打开终端终端Git Bash
  4. 将目录更改为您克隆的复刻的位置。

    • 若要转到主目录,请只键入 cd,不要键入其他文本。
    • 若要列出当前目录中的文件和文件夹,请键入 ls
    • 若要进入列出的某个目录,请键入 cd your_listed_directory
    • 若要回到上一个目录,请键入 cd ..
  5. 键入 git remote -v,然后按“Enter”。 你将看到当前为分支配置的远程存储库。

    $ git remote -v
    > origin  https://hostname/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://hostname/YOUR_USERNAME/YOUR_FORK.git (push)
  6. 键入 git remote add upstream,然后粘贴在步骤 3 中复制的 URL,然后按 Enter。 它将如下所示:

    $ git remote add upstream https://hostname/ORIGINAL_OWNER/Spoon-Knife.git
  7. 若要验证为分支指定的新上游存储库,请再次键入 git remote -v。 你应该会看到分支的 URL 为 origin,原始存储库的 URL 为 upstream

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

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

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

若要为分支存储库配置远程存储库,请使用 --remote 标志。

gh repo fork repository --remote=true

若要指定远程存储库的名称,请使用 --remote-name 标志。

gh repo fork repository --remote-name "main-remote-repo"

编辑分支

您可以对复刻进行任何更改,包括:

  • 创建分支:分支支持在不影响主项目的情况下构建新功能或测试创意。
  • 打开拉取请求:如果希望回馈原始存储库,可以通过提交拉取请求,请求原作者将你的分支拉取到他们的存储库。

另找一个仓库进行复刻

复刻仓库,开始参与项目。 如果存储库和企业策略设置允许创建分支,可以将专用或内部存储库分支创建到个人帐户或 your GitHub Enterprise Server instance 上你拥有存储库创建权限的组织。

后续步骤

您现在已经复刻了仓库、练习了克隆复刻并配置了上游仓库。

  • 有关克隆分支和从计算机同步分支存储库更改的详细信息,请参阅“设置 Git”。

  • 您也可以创建一个新的仓库,以将所有项目放在 GitHub 上并共享代码。 为项目创建存储库后,可以将代码存储在 GitHub 中。 这提供了工作备份,你可以选择将其与其他开发人员共享。 有关详细信息,请参阅“创建存储库”。"

  • GitHub 中的每个仓库均归个人或组织所有。 您可以在 GitHub Enterprise Server 上连接和关注人员、仓库和组织以与之进行交互。 有关详细信息,请参阅“社交化”。

  • GitHub 有一个强大的支持社区,你可以在那里寻求帮助并与来自世界各地的人交谈。 加入 GitHub Community 上的对话。