fork 是 github 提供的独立副本创建机制,支持网页端点击、cli 命令或 api 调用三种方式,完成后需克隆并配置 upstream 以同步原仓库更新。

如果您想在 GitHub 上对他人仓库进行修改或实验,但又没有直接提交权限,则需要通过 Fork 功能创建一个属于自己的独立副本。以下是 Fork 仓库的原理说明与具体操作步骤:
一、Fork 的基本原理
Fork 是 GitHub 提供的一种仓库复制机制,它会在您的 GitHub 账户下生成一个**完全独立的远程仓库副本**,该副本与原仓库无写入权限关联,但保留完整的提交历史和分支结构。Fork 后的仓库可自由修改、提交、新建分支,且不会影响原始仓库。
二、在 GitHub 网页端 Fork 仓库
这是最常用、最直观的 Fork 方式,适用于所有公开仓库及您有访问权限的私有仓库。
1、打开目标仓库的 GitHub 页面,例如 https://github.com/username/repository-name。
2、在页面右上角找到 Fork 按钮(位于 Star 和 Watch 按钮右侧)。
3、点击该按钮,GitHub 将自动开始复制整个仓库到您的账户下。
4、复制完成后,页面会自动跳转至您名下的新仓库地址,URL 格式为 https://github.com/您的用户名/repository-name。
三、使用 GitHub CLI 执行 Fork
GitHub CLI(gh)允许您在终端中完成 Fork 操作,适合批量管理或自动化场景,需提前安装并登录 gh 工具。
1、在终端中执行 gh auth login 并按提示完成身份验证。
2、运行命令 gh repo fork username/repository-name,其中 username/repository-name 为原始仓库的路径。
3、命令执行成功后,终端将输出新 Fork 仓库的 URL,并默认克隆到本地当前目录(可加 --clone=false 跳过自动克隆)。
四、通过 API 手动触发 Fork
适用于集成到脚本或第三方工具中,需使用 GitHub REST API v3 的 POST /repos/{owner}/{repo}/forks 接口,依赖有效的 personal access token。
1、准备一个具备 public_repo 或 repo 权限的 personal access token。
2、向 https://api.github.com/repos/{owner}/{repo}/forks 发送带 Authorization 头的 POST 请求,例如:
curl -X POST -H "Authorization: token YOUR_TOKEN" https://api.github.com/repos/octocat/Hello-World/forks
3、响应状态码为 202 表示请求已接受,返回 JSON 中的 clone_url 字段即为新 Fork 仓库的 HTTPS 克隆地址。
五、Fork 后的常见后续操作
Fork 仅完成远程副本创建,若需本地开发,还需执行克隆、配置上游远程等步骤。
1、在终端中运行 git clone https://github.com/您的用户名/repository-name.git 将 Fork 的仓库下载到本地。
2、进入项目目录后,添加原始仓库为 upstream 远程源:git remote add upstream https://github.com/原始作者用户名/repository-name.git。
3、执行 git fetch upstream 可拉取原始仓库的最新变更,便于保持同步。










