GIT の仕組みを誤解していたのかもしれません。
私は実行git rebase -i HEAD~10
しましたが、10 個のコミットを 1 つにまとめることができました。問題は、押しつぶされたすべてのコミットがまだそこにあることであり、それらをすべて 1 つにマージした後に削除されると思っていました。
これは期待される結果ですか?もしそうなら、履歴を書き直して無駄なコミットを削除できますか (これらの変更は、以前のすべてのコミットが押しつぶされたコミットに既に含まれているため)?
GIT の仕組みを誤解していたのかもしれません。
私は実行git rebase -i HEAD~10
しましたが、10 個のコミットを 1 つにまとめることができました。問題は、押しつぶされたすべてのコミットがまだそこにあることであり、それらをすべて 1 つにマージした後に削除されると思っていました。
これは期待される結果ですか?もしそうなら、履歴を書き直して無駄なコミットを削除できますか (これらの変更は、以前のすべてのコミットが押しつぶされたコミットに既に含まれているため)?
インタラクティブなリベース セッションを開始すると、現在のブランチからの最新の 10 個のコミットのリストが表示されるはずです。
git rebase -i HEAD~10
pick as2i8dw first commit
pick ee361eb second commit
...
pick b2762sx most recent commit
このファイルを次のように変更する必要があります。
pick as2i8dw first commit
squash ee361eb second commit
...
squash b2762sx most recent commit
git commit
次に、変更を保存する必要があります。git log を実行すると、as2i8dw
コミットのみが表示され、他の 10 は表示されません。
そうは言っても、これはあなたがしたことですか?
問題は、押しつぶされたすべてのコミットがまだそこにあることです
これらのコミットが他の参照 (他のブランチまたはタグ) から引き続きアクセスできる場合、現在のブランチがリベースされた後でも表示されます。
代わりに、.com でコミットを押しつぶしてgit reset --soft
みてください。
HEAD がまだ 10 件のコミットを参照している場合:
git reset --soft HEAD~10
git commit -m "squashed 10 commits"