0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gitの過去の歴史を新しい歴史として作りたいとき

Last updated at Posted at 2021-12-08

Gitでやらかして、過去の歴史を新しい歴史として作りたいとき

  • Gitでコミット、プッシュしちゃってからやっちまった、ということに気づくことがままある。
  • そんなとき、ググるとやっちまった歴史を消してプッシュすればいいという記事はよく見る
    • でもそうするとチームでGit使ってたときに他の人の歴史を壊すことがあるのでしたくない。
  • SVNみたいに、やっちまった歴史を残しつつ前の歴史を新しい歴史として作るにはどうしたらいいかわからなかったので無理やりやったのを記録しておく
  • すごく無理やりなので他にいい方法が絶対あるはず・・・

やったこと

  • やっちまった前のコミットを新しくcheckout
git clone リポジトリ
git checkout <やっちまう前のハッシュか何か>
  • ディレクトリの.gitディレクトリ消す
rm -rf .git
  • やっちまったリポジトリの.gitディレクトリ持ってくる
cp -r /path/to/やっちまった/.git ./
  • git status
git status
  • 新しい歴史としてコミット、プッシュ
git commit -m "やっちまう前の歴史を新しく追加"
git push

やっちまう前の.gitディレクトリをやっちまった.gitで上書きする、というだけ。
git上はやっちまった歴史になってるけどファイルたちはやっちまう前のものになってる。
きっと正しいやり方じゃないのであまり当てにしないほうがいいと思いますが
これでできてちょっと嬉しかったので書きました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?