# 派生 GitHub 项目

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

如果您想为托管在 GitHub 上且不能直接 push 的项目做贡献，请遵循以下工作流程：

1.  [创建项目的一个 fork](#fork)，然后开始贡献。

2.  [Clone](manage-projects-hosted-on-github.html#clone-from-GitHub) 这个 fork 以创建一个本地仓库。

3.  请对您原始项目的副本进行修改， [commit](commit-and-push-changes.html#commit) 并 [push](commit-and-push-changes.html#push) 这些更改。

4.  当您准备好分享您的工作成果时，请运行 [Sync Fork](#rebase-fork)以将您的 fork 重定基于原项目主分支的当前 HEAD。 这有助于确保您的更改不会与您创建 fork 后推送的新的提交发生冲突。

5.  向原项目提出 [创建 pull request](create-and-merge-github-pull-requests.html#create-pull-request) 来建议您的更改。

6.  [显示并应用](create-and-merge-github-pull-requests.html#work-with-received-feedback)本地建议。

## 复刻项目

一个  fork  是您的 GitHub 仓库副本，使您可以更改代码而不影响原始项目。

Procedure: 创建一个 fork

* 在 [GitHub](https://github.com) 上打开要复刻的项目，然后点击 ![叉子图标](https://resources.jetbrains.com/help/img/idea/2026.3/github_fork.png)。

将在您的帐户下创建原始项目的副本。 如需对该项目进行更改，您需要将其 [clone](manage-projects-hosted-on-github.html#clone-from-GitHub)以创建一个本地仓库。

Procedure: 将复刻与原始项目同步

* 在主菜单中，前往  `Git｜GitHub｜同步分叉` 。 您的复刻将变基到创建该复刻的原始项目的  `main`  分支中的 HEAD 提交。

如果同步复刻未完成
: 如果同步未完成，请检查本地仓库的远程并注意：
:
:
:
: * 不支持多仓库项目。
:
: * IntelliJ IDEA 会将 `origin` 远程视为指向您的复刻的远程。 如果没有此类远程，或者它未指向 GitHub 复刻，IntelliJ IDEA 会显示相应消息。
:
: * 为了读取原始项目的 URL 和默认分支，IntelliJ IDEA 会使用为 `origin` 服务器注册的 GitHub 帐户。 如果有多个此类帐户，它会要求您选择一个。
:
: * IntelliJ IDEA 会为原始项目添加一个名为 `上游` 的远程，或重用已指向它的现有远程，获取该远程，并将当前分支变基到默认分支。 如果仓库已有一个使用不同 URL 的 `上游` 远程，IntelliJ IDEA 会显示错误消息。
:
: * `上游` URL 使用 HTTPS，如果在 `设置 | 版本控制 | GitHub` 中启用了 使用 SSH 克隆 Git 仓库 ，则使用 SSH。

观看此视频教程，了解如何保持项目的 fork 最新：

[Video](https://www.youtube.com/v/o-2fvj7GsOQ)

