Git の履歴を削除して新しいブランチを作成する方法

Git の履歴をすべて削除して新しいブランチからリポジトリ管理を始めたい場合、まずは以下のように git checkout コマンドに —orphan オプションをつけて空のブランチを作成する。

1
$ git checkout --orphan tmp

この状態で、いつものように Git 管理下におきたいファイルをステージングして commit する。何も commit していない状態だと git branch を実行しても tmp ブランチは表示されないようだ。

1
2
$ git add .
$ git commit -m "first commmit"

この時点で master と履歴が 1 つの tmp というブランチが存在することになる。あとは master ブランチを tmp ブランチで push して履歴をすべて削除した master ブランチに改変する。

1
$ push -f . tmp:master

別のリモートリポジトリに push

GitHub から clone したリポジトリを履歴を削除した上で BitBucket で新たに管理を開始したい場合などは、まず上記の手順で履歴を削除したリポジトリを作成した後、以下のように origin の url を変更する。

1
2
$ git checkout master # カレントブランチを master ブランチに戻す
$ git remote set_url origin git@bitbecket.com:username/repository.git

あとはリモートリポジトリに対して push すればよい。

1
$ git push origin master

最初に作成した orphan なリポジトリはもはや不要なので削除してよい。

1
$ git branch -d tmp