如何在GitHub上请求维基页面?

cre*_*gox 132 git wiki github

我在GitHub上看到了一个未打开进行编辑的wiki页面.然后我分叉项目,在"我的结束"上编辑它并尝试做拉动请求.事实证明,维基不在项目中,并且没有办法对其进行更改.

除了电子邮件之外,如果我想在这种情况下建议对wiki进行更改,还有办法继续吗?

在这一点上,我发现在"具有相似标题的问题"下似乎是一个替代方案,但我还不能用它做拉取请求,所以我不确定子模块是否是一个很好的方法.我现在看到我可能会以某种方式分支它......所以这是要走的路吗?

Cal*_*ion 107

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

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

我建议的工作流程如下:

  1. 在您的Github帐户上手动创建Taffy wiki的分支:
    • 在您的github帐户上创建一个新的存储库.我们称之为"Taffy-Wiki".
    • 将Taffy wiki repo克隆到您的本地计算机上: git clone git@github.com:atuttle/Taffy.wiki.git
    • 删除原始的"origin"遥控器并添加你的github repo作为新的"origin" git remote rm origingit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. 在本地进行建议的更改,然后将它们推送到您的github帐户: git push -u origin master('-u origin master'仅在第一次需要时执行;之后只需执行git push)
  3. 向Taffy官方问题跟踪器提交一张票,要求我查看您的更改并将其合并.请确保包含指向您的回购的链接并描述您已更改的内容.
  4. 转到#2

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

如果是我,我会在主存储库(即你分叉的那个)中创建一个问题,建议对wiki进行更新.如果未启用问题,请发送电子邮件,告知我能想到的唯一其他选项.


Jör*_*örg 13

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

  1. 将您的文档与文档文件夹中的代码一起放入 git 存储库。
  2. 使用一些魔法扩展您的 travis-ci 构建,该魔法将来自该文档文件夹的所有更改与应用于 wiki git 的转换进行分阶段。请参阅下面的最后一个示例链接。
  3. 将 wiki 视为文档的只读视图。请注意,使用 github.com 您仍然可以查看和直接编辑文档文件夹中的文件。因此,您仍然可以在几秒钟内修复浏览器中的拼写错误(即使 PR 对 repo 没有权限)——只是不能通过 wiki。
  4. 当贡献者分叉时,他也有代码的文档。他可以在一个 PR 中进行更改,并且所有内容都在同一过程中进行审查,因此在合并后代码和文档保持同步。你仍然有更好的用户体验来阅读带有侧边栏等的 wiki 中的文档。

由于我们是 100% OSS,我们喜欢分享我们为实现这一伟大解决方案而付出的辛勤努力。以下是链接示例:


Rob*_*fat 6

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

这意味着拉取请求/分叉过程工作正常。但是,在合并拉取请求后,我必须执行额外的步骤,将拉取到本地存储库,然后推送到主存储库和 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
Run Code Online (Sandbox Code Playgroud)

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

如何合并两个 Git 存储库?

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

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

希望这可以帮助某人。


Gab*_*les 5

您不能执行拉取请求,但您可以打开一个问题,将链接粘贴到您的 wiki 页面,并让它们在您的 wiki 页面中合并到他们的 wiki 页面。

简而言之:

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

完整说明:

(从 Larry Botha 的 github gist 复制过来:https : //gist.github.com/larrybotha/10650410 ):

合并来自分叉 Github 存储库的 Wiki 更改

这是由 Roman Ivanov从How To Merge Github Wiki Changes From One Repository 到另一个的启发(或基本上复制),用于确保如果原始文章发生某些事情,信息在这里保持良好和安全。

术语

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

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

贡献

如果您想为已分叉的存储库的 wiki 做出贡献,请执行以下操作:

  • 分叉回购
  • 仅将 wiki 克隆到您的机器: $ g clone [FREPO].wiki.git
  • 对您本地的分叉 wiki 存储库进行更改
  • 将您的更改推送到 GitHub

准备好让作者知道您有更改后,请执行以下操作:

  • OREPO上打开一个问题
  • 提供指向您 wiki 的 git repo 的直接链接以便于合并:即 [ 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
Run Code Online (Sandbox Code Playgroud)

如果OREPO wiki 位于FREPO分叉的位置之前,请执行以下操作:

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

#checkout 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
Run Code Online (Sandbox Code Playgroud)


Gle*_*len -3

GitHub 现在支持此功能,您可以在添加或编辑 wiki 页面中找到详细信息。

现在它被视为一个“普通”存储库,具有分支、拉取请求、提交等。

  • 这是不正确的。Github 不直接支持 wiki 存储库的 PR。你必须遵循上面@Calrion的答案,这将迫使你用主存储库的远程地址替换远程并将你的分支推送到它。此时您可以创建 PR,这反过来又会更新您的 wiki。 (3认同)