关于分支
分支是一个新的仓库,它与原始的“上游”仓库共享代码和可见性设置。分支通常用于迭代想法或更改,然后再将其提交回上游仓库,例如在开源项目中,或者当用户无权访问上游仓库时。有关更多信息,请参阅“使用分支”。
向他人的项目提出更改
例如,您可以使用分支来提出与修复错误相关的更改。与其为发现的错误记录问题,不如:
- Fork 仓库。
- 进行修复。
- 向项目所有者提交拉取请求。
将其他人的项目用作你自己的想法的起点
开源软件基于这样的理念:通过共享代码,我们可以制作更好、更可靠的软件。有关更多信息,请参阅开源计划上的“关于开源计划”。
有关将开源原则应用于 GitHub 上组织的开发工作的更多信息,请参阅 GitHub 的白皮书“内部源的介绍”。
从他人的项目分支创建公共仓库时,请务必包含一个许可文件,该文件确定你希望如何与他人共享你的项目。有关更多信息,请参阅 choosealicense.com 上的“选择开源许可证”。
有关开源的更多信息,特别是关于如何创建和发展开源项目的更多信息,我们创建了开源指南,通过推荐创建和维护开源项目仓库的最佳实践,帮助你培养健康的开源社区。你还可以参加一个免费的GitHub Skills课程,学习如何维护开源社区。
先决条件
如果你还没有,请先设置 Git 并使用 Git 进行 GitHub.com 身份验证。有关更多信息,请参阅“设置 Git”。
Fork 仓库
你可能会 Fork 一个项目以向上游仓库提出更改。在这种情况下,定期将你的 Fork 与上游仓库同步是一个好习惯。为此,你需要使用命令行上的 Git。你可以使用刚刚 Fork 的相同的 octocat/Spoon-Knife 仓库来练习设置上游仓库。
-
在 GitHub 上,导航到 octocat/Spoon-Knife 仓库。
-
在页面右上角,点击Fork(创建分支)。
-
在“所有者”下,选择下拉菜单并点击一个分支仓库的所有者。
-
默认情况下,分支仓库的名称与其上游仓库相同。或者,为了更好地区分你的分支仓库,可以在“仓库名称”字段中输入一个名称。
-
或者,在“描述”字段中输入分支仓库的描述。
-
或者,选择仅复制DEFAULT分支。
对于许多分支场景,例如为开源项目贡献代码,你只需要复制默认分支。如果你不选择此选项,所有分支都将被复制到新的分支仓库中。
-
点击创建分支。
注意
如果你想从上游仓库复制其他分支,你可以在分支页面进行操作。更多信息,请参见“在你的仓库中创建和删除分支”。
要了解更多关于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上创建分支的信息,请参见本文的网页浏览器版本。
在GitHub Desktop中,如果你尝试克隆一个你没有写入权限的仓库,则会自动为你创建一个分支。
-
在文件菜单中,点击克隆仓库。
-
点击与你要克隆的仓库位置相对应的选项卡。你也可以点击URL手动输入仓库位置。
-
从仓库列表中,点击你要克隆的仓库。
-
要选择要克隆仓库的本地目录,在“本地路径”字段旁边,点击选择...并导航到该目录。
-
在“克隆仓库”窗口底部,点击克隆。
-
阅读“你计划如何使用此分支?”窗口中的信息。
- 如果你计划将此分支用于贡献给原始上游仓库,请点击为贡献给父项目。
- 如果你计划将此分支用于与上游无关的项目,请点击为我自己的用途。
-
点击继续。
克隆你的分支仓库
现在,你已经创建了Spoon-Knife仓库的分支,但是你的电脑本地没有该仓库的文件。
-
在GitHub上,导航到你的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.
-
在文件菜单中,点击克隆仓库。
-
点击与你要克隆的仓库位置相对应的选项卡。你也可以点击URL手动输入仓库位置。
-
从仓库列表中,点击你要克隆的仓库。
-
要选择要克隆仓库的本地目录,在“本地路径”字段旁边,点击选择...并导航到该目录。
-
在“克隆仓库”窗口底部,点击克隆。
配置Git以将你的分支与上游仓库同步
当你为了向上游仓库提交更改而创建项目的fork时,你可以配置Git将更改从上游仓库拉取到你的fork的本地克隆。
-
在 GitHub 上,导航到 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社区的讨论。