アップストリームがプルしない機能ブランチを持つフォークされたgitリポジトリを維持する方法は?


8

これがGithubの典型的なワークフローです...

  1. いくつかのプロジェクトのように->それをフォークし-> git clone https://github.com/you/someprojectます。

  2. プロジェクトを開きます。あなたが見るものに似ていますが、いくつか変更を加えます。

  3. feature-branchgit checkout -b some-feature)でのみ機能するように注意して、Githubフォークにupstreamプッシュした後、メンテナーにプルリクエストを出すことにしましたfeature-branch

  4. メンテナは、何らかの理由でプルを拒否します。

たとえば、上記のシナリオに一致する、失敗したプルリクエストは次のとおりです。..

一般的にメンテナ場合、HADがマージプル...ワークフローがシンプルになります...私のローカルマシン上で、私は何でも上の任意のローカルの変更コミットするだろうfeature-branch、私は一度にあったし... git fetch --allgit checkout mastergit pull upstream --ff-only。次に、必要に応じて、その上で変更を再生します...

だが...

私のフォークへの変更を無理なく続けていきたいと決心した場合はどうなりますかupstream?それでも、発生した変更を追跡してマージできるようにしたいですか?通常、私はあなたが維持することができますどのように..機能ブランチを削除して、自分の道に行くとmaster、マージされた上流ことすることができ、まだから「永久に切り離さ」されながら、あなたのフォークの機能を維持し、分岐upstreamのをHEAD


11
書式設定への不必要な変更は、これまで聞いた単一のプロジェクトには受け入れられません。リポジトリにそれらを保持することを主張する場合は、小さな個人的な価値のあるマージ地獄へようこそ。警告をクリーンアップしただけなら、おそらくそれは受け入れられますが、適切なサイズのチャンクに分割して送信するように求められる場合があります。書式に一貫性を持たせるための変更も受け入れられる場合があります。しかし、書式を別のものに変更する変更は決してありません。他の誰もが現在のフォーマットに慣れており、マージで問題が発生するためです。
Jan Hudec 2013年

単なるコンテキストとして、プルリクエストのdiff統計は次のとおりです。「追加された832のファイルと削除された1,478の15の変更されたファイルの表示」

2
@Jan Hudec私の質問は、ツールの使用方法についてです... 私のプルリクエスト気に入った場合は、笑いません。個人的には、すべてのF-ingファイルの先頭にある(OSSプロジェクトの)巨大なライセンスを扱うことができないため、大量の削除が行われます。その他の変更は従来のものであり、コンパイラの警告を削除して、コードは実際に読み取り可能です。とにかく、この質問は、「正しい」と「間違っている」とは何も言われずに、どのようにして「違う」と言えるかについてです。
アレックスグレー

1
@alexgray:それが私が答えとしてではなくコメントとして書いている理由です。
Jan Hudec 2013年

回答:


6

シナリオの使用に関係なく、これを行う方法は次のとおりです。

  • マスターは、上流のマスターが持っているバージョンとまったく同じです
  • カスタムは、フォーマットの変更を適用した独自の「マスター」ブランチです
  • 上流のマスターにプルしたくない場合、すべての機能ブランチはカスタムから分岐されます
  • マスターが更新されたら、カスタムをマスターにリベースし、機能ブランチをカスタムにリベースします

この戦略でうまくいくはずです。ただし、カスタムに基づいて機能ブランチで行ったすべての変更が上流マスターに受け入れられるわけではないことに注意してください。

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