术语 · 工程与协作

复刻

Fork

把别人的仓库完整复制到自己名下自由修改,再通过 PR 把改进送回上游。

复制一份到自己名下,再把改进送回去

别人的仓库,你的想法
开源协作,从复制一份开始
分支开在同一个仓库里,前提是你有写权限。Fork 把别人的仓库完整复制到你的账号下:没有权限也能自由修改,改好了再通过 PR 提回上游,合不合由维护者决定。

换个角度想

Fork 像把公开的乐谱复印一份带回家:音乐厅里的原谱一个音符都动不得,但复印件上你想怎么改编都行。改编得出彩,再寄回给原作者——收不收进正谱,由他们定。

别人的仓库你没有写权限,想改怎么办?

  1. 这一步不存在——
    push 被拒绝:你没有原仓库的写权限

    点下 Fork

    整个仓库连同历史,复制到你的账号下

  2. 原仓库 · 别人的地盘

    修复只能提 issue 描述 bug

    你等作者有空 · 遥遥无期

    你的副本 · 你做主

    fix-date开分支放手改,不用问任何人

    原仓库毫不知情 · 不受影响

  3. 几周过去

    bug 还在,每次用都得绕着走

    上游又前进了 20 个提交

    同步进你的副本,改动不掉队

  4. 只能干等修复看不到日期,热情使不上劲没有权限,想帮忙也没有入口
    改进回到上游向原仓库发起 PR,评审通过后合入下个版本,所有人都用上你的修复

把整个仓库复制到自己名下

什么时候会遇到它

  1. 给开源项目修 bug

    没有写权限也能贡献:Fork、修好、提 PR,开源协作的标准路径。

  2. 二次开发

    把开源模板 Fork 成自己的版本,长期按自己的方向演化。

  3. 随便折腾的沙盒

    想怎么试就怎么试,原仓库永远不受影响。

想一想

你常用的开源组件库有个按钮 bug,作者三个月没上线了。你等不了,怎么办?

看答案

Fork 一份到自己名下修好,先让项目依赖指向你的副本顶上,同时向原仓库提 PR。作者回来合并后,再把依赖切回官方版本——既不被别人的节奏卡住,改进也回馈了社区。

最容易踩的坑

Fork 完别一去不回。上游一直在前进,副本越久不同步,和上游的差距越大,最后 PR 都对不上——常同步、早提 PR。

⌘K搜索知识库

最近收录

正在载入知识索引…