私はローカルブランチを持っていますが、私たちはプルリクエストと一緒にgit-flowを使用しています。私はPRフィードバックを受け取った後、いくつかのコミットをスカッシュしたいと考えています。私のgitブランチをスカッシュする方法は、リベースせずに同じブランチにコミットしますか?
(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
が、私はよく分かりません。
その多くのステップでは、関数を使用してすべてをまとめて、ブランチ名をパラメータとして渡すだけの良いケースのように思えます。もちろん、それを自動化することは、エラー、例外、エッジケースなどを確実に処理することを意味します。
私は訓練する初心者にはちょっと難しいので、インタラクティブリベースを使いたくありません。私もコミットの数を知る必要はありません、私はこのブランチに存在するすべてのものをやりたいだけです。
私はあなたが望むものを正確に理解していません。それぞれに異なるコミットを持つ複数のブランチを持っていますか?それらをすべて1つのブランチ上の1つのコミットに入れると、開発履歴が失われますか? – houtanb
私は1つのブランチ( 'feature1')にいくつかのコミットがあり、1つのコミットが必要です。 –