将GitHub项目的fork发布到新的NPM模块,但保留与原始项目合并的选项?

g0czyy6m  于 2023-10-14  发布在  Git
关注(0)|答案(3)|浏览(123)

GitHub和NPM上有一个高质量的开源代码库,拥有广泛的用户群。
我已经把这个项目分叉了,做了一个实质性的扩展。我想已经准备好合并了。但(适当地)是项目所有者打电话给我,而不是我。已经几个星期没有回复了。
有几个用户在讨论回购问题时要求将其合并回来,更多的用户直接联系我,将其作为一个单独的项目发布到NPM。
认真的开发人员可以通过GitHub获得新版本,但它只有原始源代码,而不是链接/缩小/定制的版本,因为README说不要运行make dist,直到它被合并回来,版本号增加。
我 * 认为 * 它应该像创建这个fork的fork一样简单,并将其发布为新的NPM模块。但是GitHub不允许我这样做(“你已经在看这个项目了”)
有没有一种方法,我可以发布这个作为一个新的NPM模块,但仍然保留选项,
1.我的叉子提交一个拉请求到原始的
1.我的fork从原来的上游获取更改
1.我的子分支从我的分支获取上游更改(从而获取原始更改)
我是否需要在新的电子邮件地址下创建一个新的GitHub帐户?
Forking a fork of my repo in GitHub

gorkyyrv

gorkyyrv1#

如何fork & patch npm模块

1.在GitHub上Fork项目。
1.将fork克隆到您的机器上
1.修复bug或添加您想要的功能。
1.将提交推送到GitHub上的fork(如果您希望为原始repo创建PR,请使用分支)。
1.在GitHub上打开你的fork,找到并复制你最近提交的SHA。
1.打开你的package.json文件,用GitHub存储库中的信息替换MODBLE、USER、REPO和SHA。

"MODULE": "https://github.com/USER/REPO/tarball/SHA",

例如:从this commit获取tarball链接

"react-remarkable": "https://github.com/HelloKip/react-remarkable/tarball/9549e776136096b827f3a0823329ad997416e364",

1.运行npm i以安装模块依赖项。
1.利润!

i7uq4tfw

i7uq4tfw2#

@user2943490给了你正确的解决方案,使用分支而不是额外的分叉。
让我来扩展一下,来回答你们关于仍然能够在几个方向上推拉的问题。git的设计方式,或者说它的数据结构,使得你可以在任意的仓库之间“总是”推拉,不管是什么。即使他们没有共同的祖先,也没有什么区别。
是的,你可能会遇到激烈的冲突,很明显,如果你试图合并完全不相关的文件,混乱可能会随之而来,但它仍然是可能的。Git只关心文件的实际内容,而不关心它们是从哪里派生出来的。
在你的例子中,因为你 * 将 * 与上游有共同的提交,这永远不会是一个问题。

vwkv1x7d

vwkv1x7d3#

我遇到过很多次类似的问题,但这次我写了npm-fork
要发布原始软件包的fork:
1.提交或阶段性更改,您不希望被补丁搞砸。
1.构建项目。

  1. npm-fork publish --scope @usernpm-fork publish --scope @user --package @origin/*用于单核。
    它将使用预发布版本修补npm-packlist列出的package.json和JavaScript文件(require/import/export)(即最终将打包的文件),使用npm publish发布,发布后使用git restore .发布。
    要在不发布和恢复的情况下修补,只需运行npm-fork patch而不是npm-fork publish

相关问题