GitHub 和 NPM 上有高质量的开源存储库,拥有广泛的用户基础。
我已经分叉了该项目并进行了实质性扩展。我认为已经准备好合并回来了。但(适当地)是项目所有者可以做出这个决定,而不是我。现在已经好几个星期没有回复了。
一些用户在回购问题讨论中要求将其合并回来,还有更多用户直接联系我以将其作为单独的项目发布到 NPM。
认真的开发人员可以通过 GitHub 获取新版本,但它只有原始源代码,而不是链接/缩小/定制版本,因为自述文件表示不要运行
make dist
,直到它合并回来并且版本号增加为止。
我认为它应该像创建这个分叉的分叉一样简单,并将其发布为新的 NPM 模块。但 GitHub 不允许我这样做(“你已经在查看这个项目了”)
有没有办法可以将其发布为新的 NPM 模块,但仍保留
的选项我是否需要使用新电子邮件地址创建新的 GitHub 帐户?
打开您的
package.json
文件,并将 MODULE、USER、REPO 和 SHA 替换为 GitHub 存储库中的信息。
"MODULE": "https://github.com/USER/REPO/tarball/SHA",
例如:从 this commit
获取 tarball 链接"react-remarkable": "https://github.com/HelloKip/react-remarkable/tarball/9549e776136096b827f3a0823329ad997416e364",
运行
npm i
安装模块依赖项。改编自 debuggable.com 和 cmwelsh.com。
@user2943490 为您提供了使用分支而不是额外的分叉的正确解决方案。
让我扩展这个问题来回答您关于仍然能够在多个方向上推或拉的问题。 git,或者更确切地说,它的数据结构的设计方式使得您可以“始终”在任意存储库之间推送和拉取,无论如何。即使他们从来没有共同的祖先,这也没有什么区别。 是的,你可能会发生激烈的冲突,显然如果你尝试合并完全不相关的文件,混乱可能会随之而来,但这仍然是可能的。 Git 只关心文件的实际内容,而不关心它们是从哪里分叉的。
在您的示例中,由于您
will与上游有共同的提交,因此它永远不会成为问题。
提交或阶段更改,您不想让补丁弄乱。
npm-fork publish --scope @user
npm-fork publish --scope @user --package @origin/*
用于单一存储库。
package.json
和
require
列出的 JavaScript 文件 (import
/export
/npm-packlist
)(即最终将打包的文件),使用 npm publish
发布它,以及git restore .
发布后。要在不发布和恢复的情况下进行修补,只需运行 npm-fork patch
而不是
npm-fork publish
。