Gitで最初のコミットを消す方法

目次

  1. 背景
  2. TL;DR
  3. 背景
    1. GitHubアカウントを間違えた
    2. resetやAmendコミットが効かない。。。
  4. 対応方法
  5. まとめ
  6. 関連記事

背景

こんにちは。 かりんとうマニア(@karintozuki)です。
Gitで最初のコミットを消す方法を紹介します。

TL;DR

とにかく早く解決したい方は以下のコマンドをどうぞ。
masterブランチの名前を変えて、新たにmasterブランチを作るってだけです。

1
2
3
git branch -m master old
git checkout --orphan master
git branch -D old

背景

なんで最初のコミットを消すなんていうことになったのかを
説明します。

GitHubアカウントを間違えた

Gitでリポジトリを作って最初のコミットをプッシュした後で、
想定していたアカウントと別のGitHubアカウントでコミットしてしまっていたことに
気づきました。

resetやAmendコミットが効かない。。。

初めに試したのはAmendコミットでしたが、
なぜか別のアカウントからコミットをAmendしようとしても
アカウントは変わらないようです。

また、git resetも試そうと思ったのですが、
特定のコミットにリセットするためのコマンドなので、
最初のコミットの前の状態には戻せないみたいでした。

とはいえ、gitフォルダを消して最初からやり直すのも
億劫だと思い、最初のコミットのみ消す方法を調べました。

対応方法

実は最初のコミットをコマンド一発で消す方法はありません。
なので、コミットがないまっさらなブランチを作るようにします。

それが以下のコマンドです。

1
git branch -m master old  

まずmasterブランチをoldと改名します。

1
git checkout --orphan master  

新しいmasterブランチにcheckoutします。
–orphanオプションをつけることで親コミットのないブランチを作ることができます。

1
2
// oldブランチを削除する  
git branch -D old

oldブランチ(古いmasterブランチ)を削除します。

これで最初のコミットをする以前の状態に戻ったはずです。

まとめ

Gitを使い始めて数年たちますが、
まだまだ知らないことが多いですね。

それじゃ今日はこの辺で。

関連記事

こちらの記事もおすすめです。

エンジニア向けブログの始め方。年間経費1500円で運用している私がその方法を紹介