gitのベストプラクティスとして、頻繁にコミットする必要がありますが、複数のコミットからなるパッチを一度にレビューする必要があるかもしれません。複数のコミットをレビューし、一度にマージまたは拒否できる方法はありますか?Gerrit:複数のコミットを1つの "変更"にまとめる
答えて
いいえ、Gerritは現在、1つのレビューにバッチコミットをサポートしていません。しかし、いくつかのオプションがあります。
私のチームは、$ DAYJOBで大きな変更を行うために機能ブランチを使用しています。小さなコミットは、機能ブランチに個別にレビュー/マージされますが、機能ブランチは、すべてが適切な場所にあり、すべての開発者が満足すれば統合されます。
また、関連するコミットをグループ化する便利な方法であるトピックブランチもサポートしています。それらについては、documentationで簡単に説明します。これらのコミットは、個別にレビュー/マージする必要がありますが、Web UIですばやくグループ化できます。
あなたは、一時的なブランチにスカッシュをマージしてから、その変更をレビューのために投稿することができます。
git checkout -b feature
git commit -m "start feature"
...
git commit -m "finish feature"
git checkout -b feature-review master
git merge --squash feature
git commit
今すぐあなたのfeature-review
ブランチがfeature
とmaster
に同じ差分相対が含まれていますがしたが、一つだけにコミットします。
git commit --amend -C HEAD
をして、その結果としてのレビューのためにプッシュする:あなたは既に投稿レビューリクエストを更新する必要がある場合
あなたがコミットを修正活用することができます。
私は、パブリックコミットはアトミックであり、貢献したい機能の完全な束を含んでいると信じています。通常は、すべての中間コミットを共有したくありません。だから、レビューの前にコミットを押しつぶすことは良い考えです。
考え方の1つは、小さな原子コミットのシーケンスとして破壊的な変更を行うことが最善だと言います。これらの小さなコミットを維持することで、あなたがしたこと、なぜリバースを行うのが容易か、二分法の有用性を高め、レビューをより簡単かつ迅速に行うことができます(例えば、データファイルをソートして1行追加した場合、小さなコミットメッセージは、何が起こったのか、そしてなぜそれが起こったのかを非常に明確にします。Squashingは、並べ替えの大きな違いが挿入を不明瞭にすることを意味します。)このアイデアは、 –
- 1. 私のコミット(マージを含む)を履歴を変更せずに1つのコミットにまとめる
- 2. 1つの行から複数の行を1つの行にまとめる
- 3. いくつかのGitコミットの変更点のまとめ
- 4. 複数のオブジェクトを1つのベクトルにまとめる
- 5. ReportViewer:複数のレポートを1つのレポートにまとめる
- 6. 複数ページのCSSを1つのファイルにまとめる
- 7. 複数のサイトを1つのGitリポジトリにまとめる
- 8. 複数の行を1つの行にまとめるMySQL
- 9. 複数のイコライザを1つのコンテナにまとめる
- 10. 2つの日時変数を1つにまとめる
- 11. 複数のブランチに1つの変更をマージする
- 12. 複数のバイト配列イメージを1つにまとめる
- 13. Wordpress - 複数のWPクエリーオブジェクトを1つにまとめる?
- 14. 複数のParallel.ForEachをC#で1つにまとめる
- 15. 複数の文字列配列を1つにまとめる
- 16. 複数のウィジェットをQtで1つにまとめる
- 17. 複数の.woffファイルを1つにまとめる
- 18. 複数の製品を1つにまとめる(AngularJs)
- 19. gitで1つのコミットから別のコミットに変更されたファイルの数を調べるには
- 20. 複数の画像を1つにまとめて
- 21. 複数の変数を一つにまとめて
- 22. gerritのすべての変更を見つける
- 23. アクティビティを変更すると1つのTABで複数のアクティビティがクラッシュする
- 24. 2つのmysqlカラムを1つの変数にまとめて検索する
- 25. 変更1つの画像の境界を複数回
- 26. 複数の選択結果を1つの行にまとめるには
- 27. Yii、複数のモデルを更新するために1つのテキストボックスを使用
- 28. VIM - 複数のファイルの行を1つのファイルにまとめる
- 29. バッチファイルで複数のxmlドキュメントを1つの大きなドキュメントにまとめる
- 30. 複数のMDXクエリ結果を1つのレポートにまとめる
ご返信ありがとうございます。しかし、コードを変更した後で、どのようにマスターにプッシュ/マージするのですか? – Nonos
あなたはどんなブランチ( 'feature'か' feature-review')で作業し続け、それが終わったらそれを押すことができます。履歴についてどれだけ気にしてコミットを破棄するかに応じて、最終的なコミットをマスターするためにスカッシュマージを行うプロセスを繰り返すこともできます。 –
'git merge --squash'は履歴を書き直して、機能上で' git bisect'を使用することを許可しません。 – summerbulb