GitHubのWikiページをプルリクエストする方法


160

編集用に開いていないGitHub上のWikiページを見ました。次に、プロジェクトをforkし、「私の終わり」で編集して、プルリクエストを実行しようとしました。結局のところwikiはプロジェクトに含まれておらず、変更をコミットする方法はありません。

メールのほかに、この場合にWikiの変更を提案したい場合、続行する方法はありますか?

この時点で、「似たようなタイトルの質問」で代替のように見えるものを見つけましたが、それを使ってまだプルリクエストを行うことができなかったため、サブモジュールがこの目的に適しているかどうかわかりません。どういうわけかそれを分岐できると思います...それでこれは行く方法ですか?



私はパーティーに遅れていることを知っていますthisこれについては、.wikigit repoをメインプロジェクトリポジトリのサブモジュールとして使用することがこの状況に対する最良のアプローチのように思えます。
ipatch

GitHubの上のプル要求を有効にする回避策ウィキ:growingwiththeweb.com/2016/07/...
ヴァジム・

回答:


120

GitHub はWikiリポジトリのプルリクエストをサポートしいません。メインリポジトリのみをサポートします(これは残念なことですが、IMOですが、理解できます)。

ここでは、1つのプロジェクトがwikiへのコミュニティの更新を管理しながら、ソースコードと同様に厳格な管理を維持している興味深い方法を示します。

私の提案されたワークフローはこれです:

  1. 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
  2. 提案された変更をローカルで行い、それをgithubアカウントにプッシュします:(git push -u origin master'-u origin master'は初めてのみ必要です;その後はただ実行してくださいgit push
  3. 変更を確認して統合するように依頼する公式のTaffy課題追跡にチケットを送信してください必ず、リポジトリへのリンクを含め、変更内容を説明してください。
  4. 後藤#2

Taffyドキュメントへの貢献方法から 。)

私の場合、メインリポジトリ(つまり、フォークしたもの)にwikiの更新を提案する問題を作成します。問題が有効になっていない場合、メールは私が考えることができる他の唯一のオプションについてのものです。


@ Chi-YoungJeffreyLiiこれらのコマンドは私のものではありませんが、引用したブログ投稿から引用しています(引用の下にソースをリンクしました)。これらはコマンドラインのGitコマンドであり、Windowsを含む、Gitを備えた任意のプラットフォームで動作し、Bashシェルを備えたUNIXまたはGNU / Linux OSを含みます。
カリオン

Nitpick:オリジンのリモート削除/追加シーケンスは、おそらく(不必要に)少し複雑ですが、「フォーク」は技術的にはオリジンではないため、名前が誤解を招きます。新しい個人用GitHubリポジトリ(例:「個人」)のローカルクローンに2番目のリモートのみを追加し、通常はそれにプッシュすることをお勧めします。そうすれば、他の人の作業と同期するために、実際のオリジンリポジトリから通常どおりフェッチすることもできます。
TNE

5

私はこれに対して別のアプローチを採用しました。つまり、メインのリポジトリとWikiの両方にまったく同じコンテンツをプッシュすることです。これは誰の好みにもなりませんが、Risk-Firstは主にメインリポジトリにいくつかのJekyllページがあるwikiです。

つまり、プルリクエスト/フォークプロセスは正常に機能します。ただし、プルリクエストをマージした後、ローカルリポジトリにプルしてからメインリポジトリとWikiの両方にプッシュするという追加の手順を実行する必要があります。

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

これを達成するために、私はこれに続いて両方のリポジトリからのコミットをマージしました:

2つのGitリポジトリをどのようにマージしますか?

そして、次のように両方のリポジトリにプッシュします。

Git-コードを2つのリモートにプッシュする

これが誰かを助けることを願っています。


ちなみに、私はこのアプローチを支持しています-それはかなりうまくいきました。ただし、まったく異なる理由で、ロット全体をJekyllに移行することになりました。そのため、これはリスクファーストとしては機能しません
Rob Moffat

5

これまでのところ、https//devonfw.comで問題の最善の解決策が見つかりました。

  1. ドキュメントをドキュメントフォルダー内のコードと一緒にgitリポジトリに配置します。
  2. wiki gitに変換を適用して、そのドキュメントフォルダーからのすべての変更をステージングする魔法を使用して、travis-ciビルドを拡張します。以下の最後の例のリンクを参照してください。
  3. Wikiをドキュメントの読み取り専用ビューと見なしてください。github.comを使用しても、ドキュメントフォルダー内のファイルを表示して直接編集できることに注意してください。したがって、ブラウザ内のタイプミスを数秒以内に修正することができます(たとえリポジトリに対する権限のないPRとしても)-ウィキ経由ではありません。
  4. コントリビューターがフォークするとき、彼はまた、コードを含むドキュメントを持っています。彼は1つのPRで両方を変更することができ、すべてが同じプロセスでレビューされるため、マージコードとDocは同期したままになります。それでも、ウィキ内のサイドバー付きのドキュメントなどを読むための優れたUXがあります。

私たちは100%OSSなので、この素晴らしいソリューションを実現するための私たちの努力を共有したいと思っています。例としてのリンクは次のとおりです。


2

プルリクエストを行うことはできませんが、問題を開いてWikiページへのリンクを貼り付け、それらをWikiページからWikiページにマージすることができます。

要するに:

彼らはあなたのwikiページのレポを複製し(git clone YOUR_FORKED_REPO.wiki.git)、あなたのwikiコミットをすべて1つの大きなコミットに押しつぶし、この大きな押しつぶされたコミットをリポジトリにチェリーピックするだけです。これにより、すべてのWiki変更がそのWikiに取り込まれます。

完全な手順:

(ここにラリー・ボサのgithub gistからコピー:https : //gist.github.com/larrybotha/10650410):

----------上記のGITHUB GISTからのコピーアンドペーストの開始------------

分岐したGithubリポジトリからWikiの変更をマージする

これは、Roman IvanovによるHow To Merge Github Wiki Changes From One Repository From Anotherからインスピレーションを得て(または基本的にコピーして)おり、元の記事に何かが起こった場合でも、情報はここで適切かつ安全に保たれます。

用語

OREPO:元のリポジトリ-所有者が作成または維持するリポジトリ

FREPO:おそらくOREPOではなく、おそらくwikiが更新された分岐レポ

貢献する

フォークしたレポのwikiに貢献したい場合は、次のようにします。

  • レポをフォークする
  • ウィキのみをあなたのマシンにクローンします: $ g clone [FREPO].wiki.git
  • ローカルの分岐したWikiリポジトリに変更を加える
  • 変更をGitHubにプッシュする

変更があることを作成者に知らせる準備ができたら、次の手順を実行します。

  • OREPOで問題を開く
  • マージを容易にするためにwikiのgitリポジトリへの直接リンクを提供します:すなわち[ FREPO ] .wiki.git

変更のマージ

OREPOの所有者として、他の誰かのFREPOであなたのWikiに更新があるというメッセージを受け取りました。

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の分岐元よりも先にある場合は、次のようにします。

$ 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

1ページの長いドキュメントを用意してもよい場合(実際にはもっと気に入っています)、ハイジャックしREADME.MDてWikiのコンテンツをそこに置くことができます。

通常のリポジトリの一部として追跡されるだけでなく、ホームページにも表示されます。

クイックリファレンスから始めて、通常のユーザーがより一般的な情報に最初にアクセスできるように、より詳細な説明/指示に入るようにすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.