关于复刻
最常见的是,复刻用于对其他人的项目提出您没有写入权限的项目的更改,或者使用其他人的项目作为您自己想法的起点。 您可以复刻仓库以创建仓库的副本,并在不影响上游仓库的情况下进行更改。 更多信息请参阅“使用复刻”。
对其他人的项目提出更改
例如,可以使用复刻提出与修复 Bug 相关的更改。 � 需为您发现的漏洞创建议题,您可以:
- 复刻仓库
- 进行修复
- 向项目所有者提交拉取请求。
将其他人的项目用作自己创意的起点。
开源软件的理念是通过共享代� �,可以开发出更好、更可� 的软件。 更多信息请参阅 Open Source Initiative(开源倡议)上的“关于开源倡议”。
有关将开源原则应用于组织在 您的 GitHub Enterprise Server 实例 上的开发工作的详细信息,请参阅 GitHub 的白皮书“内部来源简介”。
从其他人的项目复刻创建公共仓库时,请确保包含许可文件以确定您希望与其他人共享项目。 更多信息请参阅 choosealicense.com 上的“选择开源许可”。
为深入了解开源,特别是如何创建和发展开源项目,我们制作了开源指南,它将推荐关于创建和维护开源项目仓库的最佳实践,帮助您培养一个健康发展的开源社区。 您还可以免费学� 关于维护开源社区的 GitHub 技能 课程。
基本要求
如果尚未设置 Git,您应该先设置它。 不要忘记从 Git 设置向 您的 GitHub Enterprise Server 实例 验证。
复刻仓库
您可能为了对上游或原始仓库提议更改而复刻项目。 在这种情况下,最好定期将您的复刻与上游仓库同步。 为此,您需要在命令行上使用 Git。 您可以使用刚才复刻的 octocat/Spoon-Knife 仓库练� 设置上游仓库。
- 在 您的 GitHub Enterprise Server 实例 上,导航到 octocat/Spoon-Knife 存储库。
- 在页面的右上角,单击 Fork(复刻)。
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
要创建仓库的复刻,请使用 gh repo fork
子命令。
gh repo fork repository
要在组织中创建复刻,请使用 - org
� �记。
gh repo fork repository --org "octo-org"
克隆复刻的仓库
现在,您有了 Spoon-Knife 仓库的复刻,但您的计算机本地还没有该仓库中的文件。
-
在 您的 GitHub Enterprise Server 实例 上,导航到您在 Spoon-Knife 存储库的复刻。
-
在文件列表上方,单击 ****Code(代� �)。
-
复制存储库的 URL。
- 要使用 HTTPS 克隆仓库,在“HTTPS”下单击 。
- 要使用 SSH 密钥克隆仓库,包括组织的 SSH 认证中心颁发的证书,单击 SSH,然后单击 。
- 要使用 GitHub CLI 克隆存储库,请单击 GitHub CLI,然后单击 。
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
将当前的工作目录更改为您想要存储克隆目录的位置。
-
键入
git clone
,然后粘贴先前复制的 URL。 它将如下所示,使用您的 GitHub Enterprise Server 用户名替换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.
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
要创建复刻的克隆,请使用 --clone
� �记。
gh repo fork repository --clone=true
-
在 File(文件)菜单中,单击 Clone Repository(克隆仓库)。
-
单击与要克隆的仓库位置对应的选项卡。 您也可以单击 URL 手动输入仓库位置。
-
从列表中选择要克隆的仓库。
-
单击 Choose...(选择...)并找到要克隆仓库的本地路径。
-
单击 Clone(克隆)。
配置 Git 以将您的复刻与原始仓库同步
为了对原始仓库提议更改而复刻项目时,您可以配置 Git 以将更改从原始或上游仓库拉取到复刻的本地克隆。
-
在 您的 GitHub Enterprise Server 实例 上,导航到 octocat/Spoon-Knife 存储库。
-
在文件列表上方,单击 ****Code(代� �)。
-
复制存储库的 URL。
- 要使用 HTTPS 克隆仓库,在“HTTPS”下单击 。
- 要使用 SSH 密钥克隆仓库,包括组织的 SSH 认证中心颁发的证书,单击 SSH,然后单击 。
- 要使用 GitHub CLI 克隆存储库,请单击 GitHub CLI,然后单击 。
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
将目录更改为您克隆的复刻的位置。
- 要转到主目录,请只键入
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
,然后粘贴您在第 3 步中复制的 URL 并按 Enter 键。 它将如下所示:$ git remote add upstream https://主机名/ORIGINAL_OWNER/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 命令使您的复刻与上游仓库保持同步。 更多信息请参阅“同步复刻”。
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
要为复刻的仓库配置远程仓库,请使用 --remote
� �记。
gh repo fork repository --remote=true
要指定远程仓库的名称,请使用 --remote-name
� �记。
gh repo fork repository --remote-name "main-remote-repo"
编辑复刻
您可以对复刻进行任何更改,包括:
另找一个仓库进行复刻
复刻仓库,开始参与项目。 您可以将仓库复刻到您的个人帐户或具有仓库创建权限的任何组织。 更多信息请参阅“组织中的角色”。
如果您可以访问私有仓库且所有者允许复刻,则您可以将该仓库复刻到您的个人帐户或者 您的 GitHub Enterprise Server 实例 上您具有仓库创建权限的任何组织。
后续步骤
您现在已经复刻了仓库、练� 了克隆复刻并配置了上游仓库。
-
有关克隆复刻和从计算机同步复刻仓库更改的更多信息,请参阅“设置 Git”。
-
您也可以创建一个新的仓库,以将所有项目放在 GitHub 上并共享代� �。 Creating a repository for your project allows you to store code in GitHub. This provides a backup of your work that you can choose to share with other developers. For more information, see “Create a repository.""
-
GitHub 中的每个仓库均归个人或组织所有。 您可以在 GitHub Enterprise Server 上连接和关注人员、仓库和组织以与之进行交互。 更多信息请参阅“社交”。
-
GitHub 有一个强大的支持社区,您可以在那里寻求帮助并与来自世界各地的人交谈。 � 入 GitHub 支持社区的对话。