スカッシュ マージ pull requests

Azure Repos |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018 |TFS 2017

Pull requests と Git 履歴

の作成を完了 pull request、トピック ブランチを既定のブランチ (通常は ) にマージします master 。 このマージでは、トピック ブランチのコミットがメイン ブランチに追加され、マージ コミットが作成され、既定のブランチとトピック ブランチ間の競合が調整されます。 このトピックのコメントとディスカッションpull request、トピック ブランチで行われた変更に関する追加のコンテキストが提供されます。

オブジェクトからの通常のマージのpull request

ブランチ ( または他の既定のブランチ) のコミット履歴は、関連するトピックブランチ履歴のために直線 master に従う必要があります。 プロジェクトが大きくなるにつれて、同時に取り組むトピック ブランチの数が増え、既定のブランチ履歴のフォローがますます困難になります。

この既定のブランチは、各トピック ブランチの履歴を正確に表していますが、プロジェクトの開発に関するより広範な質問に答えるのは困難です。

スカッシュ マージとは

スカッシュマージはマージ オプションです。このオプションを使用すると、トピック ブランチの Git 履歴を圧縮して、デプロイを完了pull request。 既定のブランチの履歴に追加されるトピック ブランチの各コミットの代わりに、スカッシュ マージは、すべてのファイル変更を受け取り、既定のブランチの 1 つの新しいコミットに追加します。

Azure Repos での pull requests でのスカッシュマージ

これを簡単に考える方法は、スカッシュ マージではファイルの変更が与え、通常のマージではファイルの変更とコミット履歴が提供されるという点です。

スカッシュ マージの役に立つ方法

スカッシュマージを使用すると、チームにワークフローの変更を要求することなく、既定のブランチ履歴がクリーンで簡単に実行できます。 トピック ブランチの共同作成者はトピック ブランチで望む方法で動作し、既定のブランチではスカッシュ マージを使用して線形履歴を保持します。 スカッシュ マージで更新されたブランチのコミット履歴には、マージされたブランチ master ごとに 1 つのコミットがあります。 コミットによってこの履歴コミットをステップ実行して、作業が完了した正確な時間を確認できます。

スカッシュマージ時の考慮事項

スカッシュマージでは、既定のブランチの変更履歴が圧縮されます。そのため、チームと協力して、マージをスカッシュする必要がある場合と、トピック ブランチの完全なコミット履歴を保持する必要がある場合を決定することが重要です。 スカッシュマージの場合は、ソース ブランチを削除する方法をお試しください。 これにより、トピック ブランチ自体にコミットが既定のブランチにマージされないので、混乱を防ぐ必要があります。

スカッシュ マージを使用した pull request の完了

データ の作成を完了するときに、マージをスカッシュpull request選択Azure Repos。 [ 完了] ダイアログで [結合時に スカッシュの pull requestを選択 して、トピック ブランチをスカッシュマージします。

でスカッシュ マージを使用して PR を閉Azure Repos