关于分支
分支是一个新存储库,与原始“上游”存储库共享代码和可见性设置。分支通常用于在将想法或更改提议回上游存储库之前对其进行迭代,例如在开源项目中或当用户没有上游存储库的写入权限时。有关更多信息,请参阅“使用分支”。
向其他人的项目提议更改
例如,你可以使用分支来提议与修复错误相关的更改。与其记录你发现的错误,不如
- 分叉存储库。
- 修复错误。
- 向项目所有者提交合并请求。
将其他人的项目用作自己创意的起点。
开源软件基于这样的理念:通过共享代码,我们可以制作出更好、更可靠的软件。有关详细信息,请参阅开源倡议组织的“关于开源倡议组织”。
有关将开源原则应用于 GitHub.com 上组织开发工作的详细信息,请参阅 GitHub 白皮书“内部开源简介”。
从某人的项目分支创建公共存储库时,请务必包括一个许可证文件,以确定如何与他人共享你的项目。有关详细信息,请参阅 choosealicense.com 上的“选择开源许可证”。
有关开源的详细信息,特别是如何创建和发展开源项目,我们创建了开源指南,通过推荐创建和维护开源项目存储库的最佳做法,帮助你培养一个健康的开源社区。你还可以参加GitHub 技能免费课程,了解如何维护开源社区。
先决条件
如果你尚未设置,请首先从 Git 设置 Git 和 GitHub.com 身份验证。有关详细信息,请参阅“设置 Git”。
分叉存储库
你可以分叉一个项目,以向其上游存储库提出更改。在这种情况下,定期将你的分支与上游存储库同步是一个好习惯。为此,你需要在命令行中使用 Git。你可以使用你刚分叉的相同octocat/Spoon-Knife存储库来练习设置上游存储库。
-
在 GitHub.com 上,导航到octocat/Spoon-Knife存储库。
-
在页面的右上角,单击分叉。
-
在“所有者”下,选择下拉菜单并单击分叉存储库的所有者。
-
默认情况下,分支的名称与其上游存储库的名称相同。或者,为了进一步区分你的分支,在“存储库名称”字段中,键入一个名称。
-
或者,在“描述”字段中,键入你的分支的描述。
-
或者,选择仅复制默认分支。
对于许多分叉场景,例如为开源项目做贡献,您只需要复制默认分支。如果您不选择此选项,所有分支都将复制到新分叉中。
-
单击创建分叉。
注意:如果您想从上游存储库复制其他分支,您可以从分支页面执行此操作。有关详细信息,请参阅“在您的存储库中创建和删除分支”。
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
要创建存储库的分叉,请使用 gh repo fork
子命令。
gh repo fork REPOSITORY
要在组织中创建分叉,请使用 --org
标志。
gh repo fork REPOSITORY --org "octo-org"
您可以在 GitHub.com 或 GitHub Desktop 中分叉存储库。有关在 GitHub.com 上分叉的信息,请参阅本文的 Web 浏览器版本。
在 GitHub Desktop 中,如果您尝试克隆您无写访问权限的存储库,系统会自动为您创建一个分叉。
-
在文件菜单中,单击克隆存储库。
-
单击与您要克隆的存储库位置相对应的选项卡。您还可以单击URL以手动输入存储库位置。
-
从存储库列表中,单击您要克隆的存储库。
-
要选择您要将存储库克隆到的本地目录,请在“本地路径”字段旁边,单击选择...并导航到该目录。
-
在“克隆存储库”窗口的底部,单击克隆。
-
阅读“您计划如何使用此分叉?”窗口中的信息。
- 如果您计划使用此分叉为原始上游存储库做出贡献,请单击为父项目做出贡献。
- 如果您计划将此分叉用于与上游无关的项目,请单击用于我自己的目的。
-
单击继续。
克隆你的分支存储库
现在,你有一个 Spoon-Knife 存储库的分支,但你的计算机上没有该存储库中的文件。
-
在 GitHub.com 上,导航到 Spoon-Knife 存储库的你的分支。
-
在文件列表上方,单击 代码.
-
复制存储库的 URL。
-
要使用 HTTPS 克隆存储库,请在“HTTPS”下单击 .
-
要使用 SSH 密钥克隆存储库,包括由你的组织的 SSH 证书颁发机构颁发的证书,请单击SSH,然后单击 .
-
要使用 GitHub CLI 克隆存储库,请单击GitHub CLI,然后单击 .
-
-
打开 终端终端Git Bash。
-
将当前工作目录更改为要放置克隆目录的位置。
-
键入
git clone
,然后粘贴你之前复制的 URL。它将如下所示,你的 GitHub 用户名代替YOUR-USERNAME
git clone https://github.com/YOUR-USERNAME/Spoon-Knife
-
按Enter。你的本地克隆将被创建。
$ git clone https://github.com/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
-
在文件菜单中,单击克隆存储库。
-
单击与您要克隆的存储库位置相对应的选项卡。您还可以单击URL以手动输入存储库位置。
-
从存储库列表中,单击您要克隆的存储库。
-
要选择您要将存储库克隆到的本地目录,请在“本地路径”字段旁边,单击选择...并导航到该目录。
-
在“克隆存储库”窗口的底部,单击克隆。
配置 Git 以将你的分支与上游存储库同步
当你分支一个项目以向你的分支的上游存储库提交更改时,你可以配置 Git 从上游存储库拉取更改到你的分支的本地克隆。
-
在 GitHub.com 上,导航到octocat/Spoon-Knife存储库。
-
在文件列表上方,单击 代码.
-
复制存储库的 URL。
-
要使用 HTTPS 克隆存储库,请在“HTTPS”下单击 .
-
要使用 SSH 密钥克隆存储库,包括由你的组织的 SSH 证书颁发机构颁发的证书,请单击SSH,然后单击 .
-
要使用 GitHub CLI 克隆存储库,请单击GitHub CLI,然后单击 .
-
-
打开 终端终端Git Bash。
-
将目录更改为已克隆分支的位置。
- 要转到你的主目录,只需键入
cd
而没有其他文本。 - 要列出当前目录中的文件和文件夹,请键入
ls
。 - 要进入列出的目录之一,请键入
cd YOUR-LISTED-DIRECTORY
。 - 要向上移动一个目录,请键入
cd ..
。
- 要转到你的主目录,只需键入
-
键入
git remote -v
并按Enter。你将看到为你的分支配置的当前远程存储库。$ git remote -v > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
-
键入
git remote add upstream
,然后粘贴你在步骤 3 中复制的 URL 并按Enter。它将如下所示git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git
-
要验证为你的分支指定的新上游存储库,请再次键入
git remote -v
。你应该看到你的分支的 URL 为origin
,上游存储库的 URL 为upstream
。$ git remote -v > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://github.com/YOUR-USERNAME/YOUR-FORK.git (push) > upstream https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch) > upstream https://github.com/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"
编辑分支
你可以对分支进行任何更改,包括
查找另一个要分叉的存储库
分叉一个存储库以开始为项目做出贡献。你可以将任何公共存储库分叉到你的个人帐户,或分叉到你有权创建存储库的组织。如果你有权访问私有存储库且所有者允许分叉,你可以将存储库分叉到你的个人帐户,或分叉到你有权创建存储库的 GitHub Team 组织。你无法使用 GitHub Free 将私有存储库分叉到组织。有关 GitHub Team 和 GitHub Free 的详细信息,请参阅“GitHub 套餐”。有关何时可以分叉存储库的详细信息,请参阅“关于分支的权限和可见性”。
你可以浏览 探索 GitHub,查找项目并开始为开源存储库做出贡献。有关详细信息,请参阅“在 GitHub 上查找为开源做出贡献的方法”。
后续步骤
您现在已分叉了一个存储库,练习克隆您的分叉,并配置了一个上游存储库。
-
有关从计算机克隆分叉和同步分叉存储库中的更改的更多信息,请参阅“设置 Git”。
-
您还可以创建一个新存储库,在其中放置所有项目并在 GitHub 上共享代码。为您的项目创建存储库允许您将代码存储在 GitHub 中。这提供了一个工作的备份,您可以选择与其他开发人员共享。有关更多信息,请参阅“存储库快速入门”。
-
GitHub 上的每个存储库都归个人或组织所有。您可以通过在 GitHub 上关注和关注他们来与人员、存储库和组织进行互动。有关更多信息,请参阅“在 GitHub 上寻找灵感”。
-
GitHub 有一个很棒的支持社区,您可以在其中寻求帮助并与来自世界各地的人们交谈。加入 GitHub 社区 中的对话。