😎
【Git】ブランチの履歴を削除する
はじめに
Git学びたての方(自分含む)に向けて、ブランチに付加されている履歴の削除方法を纏めました。
※履歴の改変は、チームメンバとコミュニケーションを取りつつ、注意して行うようにしてください。
新しいリポジトリを作成する
これは最も簡単な方法で、現在の作業ディレクトリの状態をそのままに、新しいGitリポジトリを作成します。これにより、過去の全てのコミット履歴が削除されます。
rm -rf .git # 現在のリポジトリの.gitディレクトリを削除
git init # 新しいリポジトリを初期化
git add . # 全てのファイルをステージングエリアに追加
git commit -m "Initial commit" # 新しい初期コミットを作成
git rebase
を使用する
`git rebase`を使用して特定のコミットまでの履歴を削除することも可能です。以下のコマンドは、最新のコミットから数えて100個前のコミットまでの履歴を削除します。(この数字は、存在するコミット数の範囲内で設定しないとエラーはきます)
git rebase -i HEAD~100
これによりエディタが開き、最新の100個のコミットが表示されます。ここで、削除したいコミットの行のpick
をdrop
に変更します。全てのコミットを削除する場合は、全ての行をdrop
に変更します。変更を保存してエディタを閉じると、指定したコミットが削除されます。
リモートブランチに強制push
本変更をリモートリポジトリに反映したい場合は-f
オプションを付けて強制pushします。
bash git push origin temp_branch:old_branch -f
ここで、temp_branch
は初期化したブランチの名前を、old_branch
は履歴を削除したいリモートブランチの名前を指定します。
Discussion