私はローカル ブランチを持っており、プル リクエストで git-flow を使用しており、PR フィードバックを受け取った後、いくつかのコミットをスカッシュしようとしています。
すべてのコミット (PR などから) を同じブランチにまとめるにはどうすればよいですか?
次のようなものになると思います。
git checkout master # For master
git pull # Get all branches up-to-date
git checkout feature1 # Checkout the branch
git checkout -b feature1_squash # Make a copy of the branch
git branch -D feature1 # Delete original branch
git checkout master # (?) Branch off latest master for safety
git checkout -b feature1 # Make new (empty) original branch
git merge --squash feature1_squash # Merge with squash into it
git push -f feature1 # Push, force will be required
確信はないけど。
このように多くの手順があるため、関数を使用してすべてを結び付け、ブランチ名をパラメーターとして渡すだけでもよいようです。もちろん、自動化するということは、エラー、例外、エッジケースなどを確実に処理することを意味します。
インタラクティブなリベースは使いたくありません。なぜなら、私がトレーニングしている初心者にとって正しく理解するのは少し難しいからです。また、コミットの数を知る必要はありません。このブランチに存在するすべてのコミットを実行したいだけです。