プルリクエストを開始するか、マスターでローカルマージコミットを実行する方が良いですか?


12

私はGitHubをかなり長い間使用しており、通常は機能ブランチをプッシュしてから、自分でマージしたプルリクエストを開始していました。ブランチをマージした場所を追跡するのに役立つことがわかりました。

しかし最近、Gitの仕組みについてますます読んでおり、マージコミットを使用してブランチをマージするときに参照できることに気付きました。

マスターに機能ブランチをマージするときだから、私は何をすべき:
実行し、マージコミットマスターにして、それが上流押しORローカルブランチを押して、プルリクエストを開始しますか?

2人のチームのプルリクエストの紹介を読みました-自分のリクエストをマージしますか?そしていただきましたプロジェクトの2人との作業の流れ公式レポや私のフォーク上の枝から万一Iオープンプル要求?しかし、彼らは誰も私が探しているものに答えていないようです。


2
これらの答えから何が欠けていると思いますか?
ラバーダック

最初のものは、プルリクエストがピアレビューされることを意図しているという意味からそれについて話します。2番目はワークフローを提供します。3番目のものは関係さえありません。
アシュハルハサン

1
これをベストプラクティスまたは良いgit履歴の観点を維持する方法から見ています。
アシュハルハサン

1
PRをマージするときは、ブランチをローカルでマージすることでマージします。これにより、マージが正常に適用されることを確認し、結果を公開する前にテストを再実行できます。GitHubのプルリクエストはこのワークフローの形式化に過ぎず、Git自体にはPRの概念はありません。
アモン

2
PRがマージされると、マスターでマージコミットが生成されるため、これによりgit履歴に違いが生じるとは思わない。したがって、コマンドラインとGithub UIの間で個人的な好み以外にどちらか一方を使用する理由はないと思います。
Ixrec

回答:


14

gitのマージメカニズム:
使用git merge featureマスターはブランチをマージ上ながらfeaturemasterして生成しmerge-commit(分岐が早送りできない場合)Gitの歴史の中で。強制的merge-commitに作成するには、で--no-ffオプションを使用しますmerge

プルリクエストのマージメカニズム:
GitHubでプルリクエストを開始するGitHub Issueと、マージする前にPRのコミットについて話し合い、議論できる場所が作成されます。PRがGitHubにマージされると、PRとまったく同じことを行いgit merge featureます。

私は何をすべきか?
したがって、歴史に関する限り、2つの間に違いはありません。
そして、貢献に関する限り、あなたの貢献者は、2つの状況で異なることをする必要はありません。それらは同じです(マイナスの素敵な小さなチャット)。

ベストプラクティス:ベストプラクティス
を見つけることはできませんでしたが、リポジトリに1人しかいない場合、PRはあまり役に立たないとロジックは言っています。

@lxrecと@amonは、私がこの結論に達するのを助けました。


4
ヒント:git merge「早送り」できる場合、マージコミットを記録しない場合があります。マージコミットを強制するには、--no-ffオプションを追加できます。
アモン

githuib.comで行うよりもローカルでgit-mergeを行うことを好みます。github.comでそのようなことをする必要がある場合は、masterブランチで直接行いたくない場合は、最初にできる非masterブランチを使用します本番環境で使用可能にする前に、ステージングモードに設定してください。
シアストピエカルツ

5

以下のようAshharは言った、技術的にも歴史ワイズ違いはありません。小さなチームのプロジェクトでは、PRを作成する追加のステップではなく、直接マージすることを好みます。ただし、機能のレビュー/フィードバックが必要な場合、またはWIPであり、複数の人が作業する場合、PRを開き、PRの説明にタスクのリストを追加する傾向があります。

git mergeマスターに変更がない場合に使用する場合がありますので、早送り使用することがありますgit merge --no-ff。しない傾向があります。

要約すると、ディスカッションが必要な場合にのみPRを使用してください。それ以外の場合は、直接マージします。


1
また、プルリクエストに関する議論とフィードバックは、チームメンバーだけでなく、自動化されたソースからも発信できることに注意してください。CIサーバーをセットアップしている場合、ビルドとテストの結果が得られるため、マスターでビルドを壊すものをマージすることはありません。
エリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.