如何在GitHub上请求Wiki页面?


160

我在GitHub上看到了一个维基页面,该页面尚未打开供编辑。然后我分叉了该项目,并在“我的末端”上对其进行了编辑,并尝试执行拉取请求。事实证明,Wiki不在项目中,并且没有办法提交对其的更改。

除了电子邮件之外,如果我想在这种情况下建议对Wiki进行更改,是否可以继续进行?

在这一点上,我在“标题相似的问题”下找到了一个替代方案,但是我现在还不能执行pull请求,因此我不确定子模块是否是实现此目的的好方法。我现在看到我可能可以以某种方式分支它...这是要走的路吗?



我知道我在这方面迟到了,但是我认为使用.wikigit repo作为主项目repo的子模块似乎是解决这种情况的最佳方法。
ipatch

在GitHub Wiki上启用拉取请求的解决方法:growthwiththeweb.com/2016/07/…–
Vadzim

Answers:


120

GitHub 不支持对Wiki存储库的拉取请求,仅支持主存储库(IMO,这有点可惜,但是我能理解)。

这是一个有趣的方式,一个项目可以管理社区对其Wiki的更新,同时仍保持对源代码的严格控制:

我建议的工作流程是这样的:

  1. 在您的Github帐户上手动创建Taffy Wiki的分支:
    • 在您的github帐户上创建一个新的存储库。我们将其称为“ Taffy-Wiki”。
    • 将Taffy Wiki存储库克隆到本地计算机: git clone git@github.com:atuttle/Taffy.wiki.git
    • 删除原始的“源”远程并将您的github存储库添加为新的“源”,git remote rm origin然后git 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进行更新。如果未启用问题,那么电子邮件是我能想到的唯一其他选择。


@ Chi-YoungJeffreyLii这些命令不是我的,而是来自我引用的博客文章(我在引用下方链接了源代码)。它们是命令行Git命令,可以在任何使用Git的平台上使用,包括Windows,以及包括具有Bash shell的UNIX或GNU / Linux OS的平台。
Calrion

Nitpick:原点远程删除/添加序列可能有点(不必要)复杂,再加上“ fork”在技术上不是原点,因此名称具有误导性。我建议仅在本地克隆上为新的个人GitHub存储库添加第二个远程服务器(例如,命名为“ personal”),然后按正常方式推送到它。这样,一个人仍然可以正常地从真实来源存储库中获取信息,以与其他人的工作同步。
tne

5

我采取了另一种方法,即将完全相同的内容推送到主存储库和Wiki中。这不会满足所有人的口味,但是Risk-First主要是一个在主存储库中有几个Jekyll页面的Wiki。

这意味着拉取请求/分叉过程工作正常。但是,在合并请求请求之后,我必须执行额外的步骤:将请求拖到我的本地存储库中,然后同时推送到主存储库和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-将代码推送到两个遥控器

希望这对某人有帮助。


仅供参考,我支持这种方法-效果很好。但是,由于完全不同的原因,我最终将整个工作全部迁移到Jekyll,所以这不再是Riskfirst的工作方式
Rob Moffat

5

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

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

因为我们是100%OSS,所以我们很乐意分享我们为实现这一出色解决方案而付出的努力。以下是链接示例:


2

您无法发出拉取请求,但可以打开一个问题,将链接粘贴到您的Wiki页面,然后让他们在您的Wiki页面中合并到其Wiki页面。

简而言之:

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

完整说明:

(摘自拉里·博塔(Larry Botha)的github文章:https : //gist.github.com/larrybotha/10650410 ):

----------从上面的GITHUB GIST开始复制粘贴------------

从派生的Github存储库合并Wiki更改

这是 Roman Ivanov的《如何合并Github Wiki从一个存储库到另一个存储库的更改》中得到启发(或基本复制)的,目的是确保如果原始文章有任何问题,此处的信息仍然保持良好和安全。

术语

OREPO:原始存储库-所有者创建或维护的存储库

FREPO:分叉的仓库可能已更新其Wiki,尚未在OREPO上

贡献

如果您想为您已创建的仓库的Wiki做出贡献,请执行以下操作:

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

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

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

合并变更

作为OREPO的所有者,您现在已经收到一条消息,告知您其他人的FREPO上的Wiki有更新。

如果从最新的OREPO Wiki 分叉了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派生的站点,请执行以下操作:

$ 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

----------上面的GITHUB GIST的复印结束------------


0

如果可以使用一个单页长的文档(我实际上更喜欢),则可以劫持该文档README.MD并将Wiki的内容放在那里。

它不仅会作为普通存储库的一部分进行跟踪,而且还会显示在主页上。

可以从快速参考开始,然后进入更详细的描述/说明,以便普通用户将首先访问更通用的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.