2015-11-17 8 views
6

ほとんどのGitワークフローでは、マスターブランチが起点から分岐するため、フォークのマスターにコミットしないと言います。しかし、アップストリームのマスター上の(マスターブランチからの)コミットをリベースするだけではうまくいかないでしょうか?もう少し複雑なことは分かっていますが、なぜこのことが悪いのか分かりません。フォークのマスターブランチにコミットするのはなぜ悪い習慣ですか?

+2

これは実際にあなたがやっていることによって異なります。正解は一つではありません。 –

+0

@ChrisMartinだから、それが問題になるときとそれがOKであるときの例を挙げることができますか? – rb612

+2

これは、「意見に基づく」ルールの例外になるべき有用な質問の1つとして私を襲います。 –

答えて

2

ほとんどの人は、おそらく、彼らはあなたには、いくつかの歴史のメタデータ(タイムスタンプ、潜在的な押しつぶし、など)を失うため、上流からプルしたいごと時間をリベースしたいとは思わないでしょう。しかし、他の人にとってはこれは問題ではないかもしれません。

プルリクエストのもう1つの理由があります。理想的には、あなたのプルリクエストの内容をトピックブランチ上に持っていて、それを上流のものにマージしてから、そのトピックブランチを削除してマスターからプルするだけです。このようにして、古い(今は複写された)コミットがあなたの履歴に残っていない。

マスタブランチを「純粋」な状態に保つことができるという点では、マスタを引き出して競合する必要がないという意味で何かがあります。 あなたがフォークしてから6ヶ月後には、一見して "自分"と "あなたのもの"が何であるか見ることができます。

+0

それは多くの意味があります。ありがとう! 「あなたの古い(今は複製された)コミットがあなたの履歴に残っていないこの方法」という意味はどうですか?彼らは歴史の中でどのように重複していますか? – rb612

+0

上流を共有しようとしているコミットを作成したとしましょう。あなたはマスター(おそらく途中でrebasing)でコミットし、次にコミットからプルリクエストを作成するときに共有する時間です。そのプルリクエストが上流にマージされると、次にプルすると、重複したコミット(コンテンツごと)が取り込まれます。ただし、上流のメンテナーによって行われた調整に応じて、rebaseがクリーンアップされることがあります。 –

+0

Hmmm ...ローカルマスタブランチはすでにアップストリームと同期していませんか?元のレポの貢献者があなたの変更を取り入れると、私はアップストリーム/マスターとローカルマスターが同じままになると思うだろうが、私は何か不足している可能性がある。 – rb612

2

技術的には可能ですが、元のレポの保守担当者にとっては紛らわしいものです。

  • オリジナルのレポから任意の分岐は、あなたがPRを行うと
  • は、ブランチの名前が分離し、の性質を特徴づけることが重要である(ない独自のフォークにもよる)git fetch upstreamによって更新されなければなりませんあなたのPR
+0

も参照してくださいhttp://stackoverflow.com/a/14681796/6309 – VonC

0

もっと良いsvnとしてgitを使用しています。このモードでは、マスターに直接チェックインするのは正常です。

関連する問題