GitHub不支持对wiki仓库进行拉取请求,只能对主要的代码仓库进行操作(在我看来有点遗憾但我也能理解)。
以下是一种有趣的方式,可以让项目管理社区更新Wiki的同时仍然保持严密的控制,就像源代码那样:
我的建议工作流程如下:
- 手动在您的GitHub帐户中创建Taffy wiki的副本:
- 在您的GitHub帐户上创建一个新的存储库。我们称其为“Taffy-Wiki”。
- 将Taffy wiki克隆到您的本地计算机某个位置:
git clone git@github.com:atuttle/Taffy.wiki.git
- 删除原始的“origin”远程并添加您的GitHub仓库作为新的“origin”
git remote rm origin
和git remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
- 在本地进行更改,然后将其推送到您的GitHub帐户:
git push -u origin master
(“-u origin master”仅在第一次需要;之后只需执行git push
)- 提交一个工单到官方的Taffy问题跟踪器,请求我审查您的更改并合并它们。 请务必包含链接到您的仓库并描述您所做的更改。
- 跳转到#2
(来源于如何为Taffy文档做出贡献。)
如果是我,我会在主要的代码仓库(即您复刻的那个)中创建一个问题,建议对wiki进行更新。如果问题未启用,则电子邮件是我能想到的唯一其他选项。
由于我们是100%的OSS,我们很乐意分享我们努力工作的成果以达到这个伟大的解决方案。以下是示例链接:
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
然后像这样将它们都推送到存储库中:
你无法提交拉取请求,但是你可以打开一个问题 (issue),粘贴你的维基页面链接,并让他们将你的维基页面合并到他们的维基页面中。
GitHub上的维基是完整的 git
库,因此您可以像对待其他库一样处理它们。因此,以下操作有效。
他们只需要克隆你的维基页面仓库 (git clone YOUR_FORKED_REPO.wiki.git
) ,将你所有维基的提交压缩成一个大提交,然后将这个大压缩提交选择到他们的仓库。这将把你所有的维基更改带入他们的维基中。
(摘自 Larry Botha 的 GitHub Gist 这里: 从 forked GitHub 仓库合并维基更改)。
Merge Wiki Changes From A Forked GitHub Repo
This is inspired (or basically copied) from How To Merge GitHub Wiki Changes From One Repository To Another, by Roman Ivanov, and serves to ensure that should something happen to the original article, the information remains nice and safe here.
Terminology
OREPO: original repo - the repo created or maintained by the owner
FREPO: the forked repo that presumably has updates to its wiki, not yet on the OREPO
Contributing
Should you want to contribute to the wiki of a repo you have forked, do the following:
- fork the repo
- clone only the wiki to your machine:
$ g clone [FREPO].wiki.git
- make changes to your local forked wiki repo
- push your changes to GitHub
Once you are ready to let the author know you have changes, do the following:
- open an issue on OREPO
- provide a direct link to your wiki's git repo for ease of merging: i.e. [FREPO].wiki.git
Merging Changes
As the owner of OREPO, you have now received a message that there are updates to your wiki on someone else's FREPO.
If wiki changes are forked from latest OREPO wiki, you may do the following:
$ git clone [OREPO].wiki.git $ cd [OREPO].wiki.git # squashing all FREPO changes $ git pull [FREPO].wiki.git master $ git push origin master
If OREPO wiki is ahead of where FREPO forked from, do the following:
$ 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://github.com/microsoft/TypeScript.git
。如果你点击它顶部的"Wiki",你会跳转到这里:https://github.com/microsoft/TypeScript/wiki。这个维基是一个*独立的git仓库*。它的HTTPS URL是https://github.com/microsoft/TypeScript.wiki.git
。这是一个独立的git仓库。这是我对Typescript仓库的分支:https://github.com/ElectricRCAircraftGuy/TypeScript。 - undefined如果您可以接受单页长文档(我实际上更喜欢这种方式),您可以劫持README.MD
并将维基内容放在那里。
不仅它将作为正常存储库的一部分进行跟踪,而且还将显示在主页上。
它可以以快速参考开始,然后进入更详细的描述/说明,以便常规用户首先了解更通用的信息。
现在GitHub已经支持此功能,您可以在添加或编辑wiki页面中找到详细信息。
现在它被视为一个“普通”的代码库,具备分支、拉取请求、提交等功能。
.wiki
git 仓库作为主项目仓库的子模块似乎是解决这种情况的最佳方法。 - ipatch