如何在GitHub上对wiki页面进行拉取请求?

qnakjoqk  于 2022-10-23  发布在  Git
关注(0)|答案(6)|浏览(178)

我在GitHub上看到了一个未打开编辑的维基页面。然后我分叉了这个项目,在“我的端”编辑它,并尝试做一个pull请求。事实证明,wiki不在项目中,也没有办法提交更改。
除了电子邮件,在这种情况下,如果我想建议对wiki进行更改,有什么方法可以继续吗?
此时,我在“标题类似的问题”下找到了seems like an alternative,但我还不能用它来做pull请求,因此我不确定子模块是否是一个好的方法。我现在明白了,我可能会以某种方式将其分支……那么,这是一条路吗?

qvtsj1bj

qvtsj1bj1#

GitHub doesn't support pull requests for the wiki repository,只是主存储库(这有点遗憾,IMO,但我能理解)。
下面是一个有趣的方式,一个项目管理社区对其wiki的更新,同时仍然严格控制源代码:
我建议的工作流程如下:

  • 在Github帐户上手动创建Taffy wiki的分叉:
  • 在您的github帐户上创建一个新的存储库。让我们称之为“塔菲维基”。
  • 将Taffy wiki存储库克隆到本地计算机的某个位置:git clone git@github.com:atuttle/Taffy.wiki.git
  • 删除原来的“origin”remote并将您的github repo添加为新的“ori”git remote rm origingit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  • 在本地进行建议的更改,然后将其推送到您的github帐户:git push -u origin master(“-u origin master”只需要第一次;之后只需执行git push
  • 向官方Taffy问题跟踪器提交一张罚单,要求我查看您的更改并将其合并请确保包含到您的回购的链接,并描述您所做的更改
  • 转到#2

(来自*How you can contribute to Taffy documentation*。)
如果是我,我会在主存储库中创建一个问题(也就是你分叉的那个),建议更新wiki。如果没有启用问题,那么电子邮件是我唯一能想到的另一种选择。

xkftehaa

xkftehaa2#

到目前为止,我们在https://devonfw.com中找到了解决问题的最佳方案:
1.将文档与文档文件夹中的代码一起放入Git存储库。
1.使用一些魔法扩展Travis CI构建,将文档文件夹中的所有更改都应用到wiki Git中。请参阅下面的最后一个示例链接。
1.将wiki视为文档的只读视图。请注意,使用github。com,您仍然可以查看和直接编辑文档文件夹中的文件。因此,您仍然可以在几秒钟内修复浏览器中的打字错误(即使PR没有对repo的权限),只是不能通过wiki。
1.当贡献者分叉时,他/她也有代码文档。他/她可以在同一个PR中更改,并且在同一过程中对所有内容进行审查,因此合并后,代码和文档保持同步。你仍然有更好的UX,可以阅读带有侧边栏等的wiki文档。
由于我们是100%的OSS,我们喜欢分享我们为实现这个伟大的解决方案所做的努力。以下是链接示例:

jpfvwuh4

jpfvwuh43#

我对此采取了不同的方法,即将完全相同的内容推送到主存储库和wiki中。这并不是每个人的口味,但Risk-First主要是一个维基,在主存储库中有几个Jekyll页面。
这意味着pull-request/fork进程工作良好。然而,在合并一个pull请求之后,我必须执行额外的步骤,即将请求拉到本地存储库,然后推送到主存储库和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存储库*

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

  • i1 j2 k1 l*
3df52oht

3df52oht4#

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

简而言之:

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

完整说明:

(**摘自**Larry Botha的GitHub要点此处Merge wiki changes from a forked GitHub repository):

从分叉GitHub回购合并Wiki更改

这是从罗曼·伊万诺夫(Roman Ivanov)的How To Merge GitHub Wiki Changes From One Repository To Another中得到的灵感(或基本上是复制的),用于确保在原始文章发生意外时,这里的信息保持良好和安全。

术语

OREPO:原始回购-由所有者创建或维护的回购
FREPO:分叉式回购,可能对其wiki进行了更新,但尚未在OREPO上

贡献

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

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

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

  • OREPO上打开问题
  • 提供wiki的git repo的直接链接,以便于合并:即[FREPO].wiki.git

合并更改

作为OREPO的所有者,您现在收到一条消息,表示您的wiki在其他人的FREPO上有更新。
如果wiki更改是从最新的OREPOwiki派生的,您可以执行以下操作:

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

# squashing all FREPO changes

$ git pull [FREPO].wiki.git master

$ git push origin master

如果OREPOwiki领先FREPO,请执行以下操作:

$ 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
fwzugrvs

fwzugrvs5#

GitHub现在支持此功能,您可以在*Adding or editing wiki pages*上找到详细信息。
它现在被视为一个“普通”存储库,有分支、拉请求、提交等。

qco9c6ql

qco9c6ql6#

如果你可以有一个单页长的文档(实际上我更喜欢它),你可以劫持README.MD并将wiki的内容放在那里。
它不仅将作为普通存储库的一部分进行跟踪,还将显示在主页上。
它可以从快速参考开始,然后进入更详细的描述/说明,这样普通用户将首先找到更通用的信息。

相关问题