复刻仓库
复刻是仓库的副本。 通过复刻仓库,您可以自由地尝试更改而不会影响原始项目。
本文内容
复刻最常见的用法是对其他人的项目提出更改或将其他人的项目用作自己创意的起点。
对其他人的项目提出更改
使用复刻提议更改的典型实例是用于漏洞修复。 无需为您发现的漏洞创建议题,您可以:
- 复刻仓库
- 进行修复
- 向项目所有者提交拉取请求。
如果项目所有者欣赏您的工作,他们可能会将您的修复拉取到原始仓库!
将其他人的项目用作自己创意的起点。
开源的核心理念是通过共享代码,开发更好、更可靠的软件。
从其他人的项目复刻创建公共仓库时,请确保包含许可文件以确定您希望与其他人共享项目。
为深入了解开源,特别是如何创建和发展开源项目,我们制作了开源指南,它将推荐关于创建和维护开源项目仓库的最佳实践,帮助您培养一个健康发展的开源社区。 您还可以免费学习关于维护开源社区的 GitHub Learning Lab 课程。
复刻示例仓库
复刻仓库是一个简单的两步过程。 我们创建了一个供您练习的仓库!
- 在 您的 GitHub Enterprise Server 实例 上,导航到 octocat/Spoon-Knife 仓库。
- 在页面的右上角,单击 Fork(复刻)。
搞定! 现在,您拥有了原始 octocat/Spoon-Knife 仓库的复刻。
让复刻保持同步
您可能为了对上游或原始仓库提议更改而复刻项目。 在这种情况下,最好定期将您的复刻与上游仓库同步。 为此,您需要在命令行上使用 Git。 您可以使用刚才复刻的 octocat/Spoon-Knife 仓库练习设置上游仓库!
第 1 步:设置 Git
如果尚未设置 Git,您应该先设置它。 不要忘记从 Git 设置向 您的 GitHub Enterprise Server 实例 验证。
第 2 步:创建复刻的本地克隆
现在,您有了 Spoon-Knife 仓库的复刻,但您的计算机上还没有该仓库中的文件。 让我们在计算机上本地创建复刻的克隆。
-
在 GitHub Enterprise 上,导航到 Spoon-Knife 仓库的复刻。
-
在仓库名称下,单击 Clone or download(克隆或下载)。
-
要使用 HTTPS 克隆仓库,在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 。 要使用 SSH 密钥克隆仓库 单击 Use SSH(使用 SSH),然后单击 。
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
键入
git clone
,然后粘贴先前复制的 URL。 它将如下所示,使用您的 GitHub Enterprise 用户名替换YOUR-USERNAME
:$ git clone https://主机名/YOUR-USERNAME/Spoon-Knife
-
按 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.
现在,您有了 Spoon-Knife 仓库复刻的本地副本!
第 3 步:配置 Git 以将您的复刻与原始 Spoon-Knife 仓库同步
为了对原始仓库提议更改而复刻项目时,您可以配置 Git 以将更改从原始或上游仓库拉取到复刻的本地克隆。
-
在 GitHub Enterprise 上,导航到 octocat/Spoon-Knife 仓库。
-
在仓库名称下,单击 Clone or download(克隆或下载)。
-
要使用 HTTPS 克隆仓库,在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 。 要使用 SSH 密钥克隆仓库 单击 Use SSH(使用 SSH),然后单击 。
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
将目录更改为您在第 2 步:创建复刻的本地克隆中克隆复刻的位置。
- 要转到主目录,请只键入
cd
,不要键入其他文本。 - 要列出当前目录中的文件和文件夹,请键入
ls
。 - 要进入列出的某个目录,请键入
cd your_listed_directory
。 - 要回到上一个目录,请键入
cd ..
。
- 要转到主目录,请只键入
-
键入
git remote -v
,然后按 Enter 键。 您将看到当前为复刻配置的远程仓库。$ git remote -v > origin https://主机名/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://主机名/YOUR_USERNAME/YOUR_FORK.git (push)
-
键入
git remote add upstream
,然后粘贴您在第 2 步中复制的 URL 并按 Enter 键。 它将如下所示:$ git remote add upstream https://主机名/octocat/Spoon-Knife.git
-
要验证为复刻指定的新上游仓库,请再次键入
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 命令使您的复刻与上游仓库保持同步。 更多信息请参阅“同步复刻”。
后续步骤
对复刻的更改没有任何限制,包括:
- Creating branches: Branches allow you to build new features or test out ideas without putting your main project at risk.
- 打开拉取请求:如果您希望回馈原始仓库,您可以通过提交拉取请求请求原作者将您的复刻拉取到他们的仓库。
另找一个仓库进行复刻
复刻仓库,开始参与项目。 您可以将任何公共仓库复刻到您的用户帐户或任何您拥有仓库创建权限的组织。 更多信息请参阅“组织的权限级别”。
您可以将您具有访问权限的任何私有仓库复刻到您的用户帐户,或者复刻到 GitHub Team 或 GitHub Enterprise 上您拥有仓库创建权限的任何组织。
祝贺
您现在已经复刻了仓库、练习了克隆复刻并配置了上游仓库。 接下来您要做什么?
- “设置 Git”
- “创建仓库”
- “社交化”
- 在 GitHub 社区论坛 中与世界各地的人连接