复刻最常见的用法是对其他人的项目提出更改或将其他人的项目用作自己创意的起点。
对其他人的项目提出更改
例如,可以使用复刻提出与修复 Bug 相关的更改。 无需为您发现的漏洞创建议题,您可以:
- 复刻仓库
- 进行修复
- 向项目所有者提交拉取请求。
将其他人的项目用作自己创意的起点。
开源软件的理念是通过共享代码,可以开发出更好、更可靠的软件。 更多信息请参阅 Open Source Initiative(开源倡议)上的“关于开源倡议”。
有关将开源原则应用于组织在 GitHub 上的开发工作的详细信息,请参阅 GitHub 的白皮书“内部来源”。
从其他人的项目复刻创建公共仓库时,请确保包含许可文件以确定您希望与其他人共享项目。 更多信息请参阅 choosealicense 上的“选择开源许可”。
为深入了解开源,特别是如何创建和发展开源项目,我们制作了开源指南,它将推荐关于创建和维护开源项目仓库的最佳实践,帮助您培养一个健康发展的开源社区。 您还可以免费学习关于维护开源社区的 GitHub Learning Lab 课程。
注:您可以使用 GitHub Desktop 复刻仓库。 For more information, see "Cloning and forking repositories from GitHub Desktop."
提示:您也可以使用 GitHub CLI 复刻仓库。 更多信息请参阅 GitHub CLI 文档中的“gh 仓库复刻
”。
复刻示例仓库
复刻仓库是一个简单的两步过程。 我们创建了一个供您练习的仓库。
- 在 GitHub 上,导航到 octocat/Spoon-Knife 仓库。
- 在页面的右上角,单击 Fork(复刻)。
让复刻保持同步
您可能为了对上游或原始仓库提议更改而复刻项目。 在这种情况下,最好定期将您的复刻与上游仓库同步。 为此,您需要在命令行上使用 Git。 您可以使用刚才复刻的 octocat/Spoon-Knife 仓库练习设置上游仓库。
第 1 步:设置 Git
如果尚未设置 Git,您应该先设置它。 不要忘记从 Git 设置向 GitHub 验证。
第 2 步:创建复刻的本地克隆
现在,您有了 Spoon-Knife 仓库的复刻,但您的计算机上还没有该仓库中的文件。 让我们在计算机上本地创建复刻的克隆。
- 在
GitHub 上,导航到 Spoon-Knife 仓库的复刻。
-
在文件列表上方,单击 ****Code(代码)。
-
要使用 HTTPS 克隆仓库,请在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click . To clone a repository using GitHub CLI, click Use GitHub CLI, then click .
-
打开 Terminal(终端)Terminal(终端)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. > remove: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
现在,您有了 Spoon-Knife 仓库复刻的本地副本。
第 3 步:配置 Git 以将您的复刻与原始 Spoon-Knife 仓库同步
为了对原始仓库提议更改而复刻项目时,您可以配置 Git 以将更改从原始或上游仓库拉取到复刻的本地克隆。
- 在
GitHub 上,导航到 octocat/Spoon-Knife 仓库。
-
在文件列表上方,单击 ****Code(代码)。
-
要使用 HTTPS 克隆仓库,请在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click . To clone a repository using GitHub CLI, click Use GitHub CLI, then click .
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
将目录更改为您在第 2 步:创建复刻的本地克隆中克隆复刻的位置。
- 要转到主目录,请只键入
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
,然后粘贴您在第 2 步中复制的 URL 并按 Enter 键。 它将如下所示:$ git remote add upstream https://github.com/octocat/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 命令使您的复刻与上游仓库保持同步。 更多信息请参阅“同步复刻”。
后续步骤
您可以对复刻进行任何更改,包括:
另找一个仓库进行复刻
复刻仓库,开始参与项目。 You can fork a repository to your user account or any organization where you have repository creation permissions. 更多信息请参阅“组织的权限级别”。
If you have access to a private repository and the owner permits forking, you can fork the repository to your user account or any organization on GitHub Team where you have repository creation permissions. You cannot fork a private repository to an organization using GitHub Free. For more information, see "GitHub's products."
您可以浏览 Explore 以查找项目并开始参与开源仓库。 更多信息请参阅“寻找在 GitHub 上参与开源项目的方法”。
祝贺
您现在已经复刻了仓库、练习了克隆复刻并配置了上游仓库。 接下来您要做什么?
- “设置 Git”
- “创建仓库”
- “社交化”
- 在 GitHub Community Support 中与世界各地的人连接