我如何在GitHub上对维基页面进行拉请求?

我在GitHub上看到了一个无法编辑的维基页面。然后我把这个项目分叉了,把它编辑成“我的结局”;然后尝试做一个拉请求。结果是,维基不在项目中,并且没有办法向它提交更改。

除了电子邮件,在这种情况下,如果我想在维基上提出修改建议,还有什么办法吗?

在这一点上,我发现什么似乎是一个替代下的"问题与类似的标题",但我不能做拉请求与它还,所以我不确定子模块是一个很好的方式为这个目的。我现在觉得我可以用某种方式把它分叉……这是正确的方法吗?

46116 次浏览

GitHub 不支持对wiki存储库的拉取请求,只有主库(这是一个有点遗憾,IMO,但我能理解它)。

这里有一个有趣的方式,一个项目管理社区更新到他们的维基,同时仍然保持严格的控制,如源代码:

我建议的工作流程如下:

    在你的Github账户上手动创建一个Taffy wiki的分支:
    • 在你的github帐户上创建一个新的存储库。我们叫它“太妃维基”吧。
    • 将Taffy wiki回购复制到您的本地机器:git clone git@github.com:atuttle/Taffy.wiki.git
    • 删除原来的“origin”远程,并添加你的github回购作为新的“origin”git remote rm origingit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
    • 李< / ul > < / >
    • 在本地进行建议的更改,然后将它们推送到你的github帐户:git push -u origin master ('-u origin master'只需要第一次;之后只需执行git push)
    • 向官方太妃糖问题跟踪器提交一张票,要求我审查您的更改并将其合并。请务必包括一个链接到你的回购,并描述你改变了什么。
    • 转到# 2

(从您如何为Taffy文档做出贡献 . . .)。

如果是我,我会在主存储库(也就是你分叉的那个)中创建一个问题,建议对wiki进行更新。如果不启用问题,那么电子邮件是我能想到的唯一其他选择。

如果你可以有一个单页长的文档(实际上我更喜欢它),你可以劫持README.MD并把维基的内容放在那里。

它不仅将作为正常存储库的一部分被跟踪,而且还将显示在主页上。

它可以从一个快速的参考开始,然后进入更详细的描述/说明,这样普通用户就会首先接触到更一般的信息。

我对此采取了不同的方法,即将完全相同的内容推送到主repo和wiki中。这可能不符合每个人的口味,但Risk-First主要是一个wiki,在主库中有一些变身怪医页面。

这意味着拉请求/fork过程工作正常。然而,在合并了一个pull-request之后,我必须做额外的一步,拉到我的本地存储库,然后推到主存储库和wiki, Git很好地支持多个原始url:

localhost:website robmoffat$ git remote show origin
* remote origin
Fetch URL: git@github.com:risk-first/website.git
Push  URL: git@github.com:risk-first/website.wiki.git
Push  URL: git@github.com:risk-first/website.git
HEAD branch: master

为了实现这一点,我合并了两个存储库的提交,如下所示:

如何合并两个Git存储库?< / >

然后像这样推送到两个存储库:

Git -将代码推到两个遥控器

你不能做一个拉请求,但你可以打开一个问题,粘贴一个链接到你的维基页面,让他们合并在你的维基页面到他们的维基页面。

简而言之:

他们只需要克隆你的wiki页面存储库,(git clone YOUR_FORKED_REPO.wiki.git),把你所有的wiki提交压缩成一个大的提交,然后把这个大的压缩提交选择到他们的存储库中。这将把你所有的wiki更改带入他们的wiki。

完整的说明:

(从< <强>复制/强> Larry Botha的GitHub gist 在这里: 从分叉的GitHub存储库合并wiki更改):

合并来自分叉GitHub回购的Wiki更改

这是受到Roman Ivanov的如何合并GitHub维基更改从一个存储库到另一个的启发(或基本复制),并用于确保如果原始文章发生了什么事情,信息在这里保持良好和安全。

术语

OREPO:原始回购-由所有者创建或维护的回购

FREPO: fork repo可能已经更新了它的wiki,但还没有在OREPO上更新

贡献

如果你想对你已经分叉的回购的wiki做出贡献,请执行以下操作:

  • 回购分叉
  • 只克隆wiki到你的机器: 李$ g clone [FREPO].wiki.git < / >
  • 对本地的fork wiki repo进行更改
  • 将您的更改推送到GitHub

一旦你准备好让作者知道你做了修改,请执行以下操作:

  • OREPO上打开一个问题
  • 提供一个直接链接到你的wiki的git回购,以方便合并: 李。[FREPO] .wiki.git < / >

合并的变化

作为OREPO的所有者,你现在收到了一条消息,告诉你的wiki在其他人的FREPO上有更新。

如果wiki更改是从最新的OREPO wiki派生出来的,你可以执行以下操作:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git


# squashing all FREPO changes
$ git pull [FREPO].wiki.git master


$ git push origin master

如果OREPO wiki在FREPO fork的前面,执行以下操作:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git
$ git fetch [FREPO] master:[FREPO-branch]
$ git checkout [FREPO-branch]


# Check out to last OREPO commit
$ git reset --hard [last-OREPO-commit-hash]


# Do massive squash of all FREPO changes
$ git merge --squash HEAD@{1}
$ git commit -m "Wiki update from FREPO - [description]"
$ git checkout master


# Cherry-pick newly squashed commit
$ git cherry-pick [OREPO-newly-squashed-commit]
$ git push

到目前为止,我们已经在https://devonfw.com中找到了该问题的最佳解决方案:

  1. 将文档与文档文件夹中的代码一起放入Git存储库中。
  2. 使用一些魔法扩展你的特拉维斯CI构建,将文档文件夹中的所有更改应用到wiki Git中。请参见下面的最后一个示例链接。
  3. 将wiki视为文档的只读视图。请注意,使用github.com,您仍然可以查看和直接编辑文档文件夹中的文件。因此,您仍然可以在几秒钟内修复浏览器内的拼写错误(即使是公关没有回购权限)-只是不通过wiki。
  4. 当贡献者进行分叉时,他/她还拥有带有代码的文档。他/她可以在一份PR中同时修改这两项内容,并在同一过程中进行审查,所以在合并之后,代码和文档仍然保持同步。你仍然有更好的用户体验阅读文档在维基的边栏等。

因为我们是100%的OSS,我们喜欢分享我们的努力来实现这个伟大的解决方案。下面是一些链接作为例子:

GitHub现在支持这一点,你可以在添加或编辑wiki页面找到详细信息。

它被视为“正常的”;仓库现在,与分支,把请求,提交等。