1 つのブランチに複数のコミットがあります。これらのコミットをコード レビュー用にプッシュすると、コード レビュー ツールはコミットごとに 1 つのレビューを作成します。
これを避けるために、複数のコミットを 1 つのコミットにマージしたいと考えています。同時に、コミットの履歴を失いたくありません。レビュー専用の新しいブランチを作成し、マスター ブランチのすべてのコミットをレビュー ブランチの単一のコミットに結合することはできますか? どうすればいいですか?
1 つのブランチに複数のコミットがあります。これらのコミットをコード レビュー用にプッシュすると、コード レビュー ツールはコミットごとに 1 つのレビューを作成します。
これを避けるために、複数のコミットを 1 つのコミットにマージしたいと考えています。同時に、コミットの履歴を失いたくありません。レビュー専用の新しいブランチを作成し、マスター ブランチのすべてのコミットをレビュー ブランチの単一のコミットに結合することはできますか? どうすればいいですか?
あなたのレビューツールはわかりませんが、これでうまくいくかもしれません
git checkout review
git merge --squash master
http://www.kernel.org/pub/software/scm/git/docs/git-merge.html
あなたはそれをしたくありません。どのようにコミットしたかという意味での実際の履歴は無価値です。レビューに適したサイズのチャンクは興味深いのでrebase -i
、コミットを扱いやすいサイズの最も重要な論理チャンクに結合し、それらをレビューに投稿して元の履歴を忘れる作業ブランチだけです。
つまり、コミットを組み合わせるには、次を使用できます。
git merge --squash
Git は履歴を破棄しません。どちらでも実際にはそうしませんrebase
が、その場合、履歴の以前のバージョンは「reflog」を介してのみアクセス可能であり、reflog の有効期限 (IIRC ではデフォルトで 90 日) がある場合にのみ、最終的にアクセスできなくなり、git gc
捨てます。しかし、スカッシュを使用すると、元のブランチはそのまま残り、reflog からリビジョンに名前を付けることができます。
ただし、レビューされた履歴はレビュー ツールによって中央マスターにマージされ、誰も元の履歴を見ることはありません。あなたはそれを保持することができますが、それは公式のものとは関係がなく、とにかく誰もそれを見ることはありません.