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

しかし最近、Gitの仕組みについてますます読んでいて、merge-commitsを使用してマージしたときに参照できることに気付きました。

では、機能ブランチをマスターにマージする場合はどうすればよいですか:
マスターでmerge-commitを実行してから、アップストリームにプッシュしますまたはローカルブランチをプッシュしてプルリクエストを開始しますか?

2人のチームのプルリクエストの紹介-自分のリクエストをマージしますか?プロジェクトでの2人のワークフロー公式リポジトリまたはフォークのブランチからのプルリクエストを開く必要がありますか?しかし、それらのどれも私が探しているものに答えていないようです。

コメント

  • これらの答えに欠けていると正確に感じていることは何ですか?
  • 最初のものは、プルリクエストがピアレビューされることを意図しているという意味からそれについて話します。 2つ目は、ワークフローを提供します。 3つ目は'関連性すらありません。
  • これはベストプラクティスまたは維持方法から見ています。優れたgit履歴の観点。
  • PRをマージするときは、ブランチをローカルでマージすることでマージします。これにより、マージが正しく適用されることを確認し、結果を公開する前にテストを再実行できます。 GitHub 'のプルリクエストはこのワークフローの単なる形式化であり、Git自体にはPRの概念がありません。
  • PRがマージされると、マージが生成されますマスターでコミットするので、'これがgitの履歴に違いをもたらすとは思いません。したがって、'コマンドラインとGithubUIの間の個人的な好み以外に、どちらか一方を使用する理由はないと思います。

回答

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

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

どうすればよいですか?
したがって、歴史に関する限り、2つの間に違いはありません。
そして、貢献に関する限り、あなたの貢献者は2つの状況で異なることをするために。それらは同じです(ちょっとしたチャットを除いて)。

ベストプラクティス:
また、ベストプラクティスを見つけることができませんでしたが、リポジトリへの寄稿者が1人だけの場合、PRはあまり役に立たないと論理的に言われています。

@lxrecと@amonは、この結論に到達するのに役立ちました。

コメント

  • ヒント:git mergeは、「早送り」できる場合、マージコミットを記録しない場合があります。マージコミットを強制するには、--no-ffオプションを追加できます。
  • githuib.comではなく、ローカルでgit-mergeを実行する方が好きです。 github.comでそのようなことをする必要があります。マスターブランチで直接実行したくないので、本番環境で使用できるようにする前に、最初にステージングモードに設定できる非マスターブランチを使用します。

回答

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

マスターに変更がない場合、git mergeは早送りを使用する可能性があるため、使用することをお勧めします。 git merge --no-ff。私はそうしない傾向があります。

要約すると、PRのみを使用します。 ■話し合いが必要な場合。それ以外の場合は、直接マージします。

コメント

  • 'は、プルリクエストに関するディスカッションとフィードバックが可能であることにも言及する価値があります。 自動化されたソースとチームメンバーから来ています。 CIサーバーをセットアップしている場合は、ビルドとテストの結果が得られるため、マスターでのビルドを中断するものをマージすることはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です