16
6

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 5 years have passed since last update.

gitで黒歴史を抹殺して「え、何かありました?」とすっとぼけるやり方

Posted at

ウワーやっちまった!
あわてて、ファイルを削除して、gitignoreにも追加。
キャッシュも消したぜ!

でも、ログを見ると、いる。。。。。。。やつの足跡がはっきり刻まれている。。

うわーーーーー誰にもばれたくない!!
わたわたしていると、
会社のいつもお世話になっているかたから救いの手が。。。

git filter-branch

こ れ だ ━━━(゚∀゚)━━━!
さっそくやってみるしかない。。。

# このパスワードまみれのファイルを歴史から一刻も削除しなければ。。。
$ git filter-branch --tree-filter 'rm -f password_all.txt' HEAD

すると
refs/original/refs/<作業branch名>
にこの改竄用正しいコミットのsha1が追加されます。

よし!
調子に乗って

# このパスワードまみれのdirを歴史から一刻も削除しなければ。。。
git filter-branch --tree-filter 'rm -rf passwords/*' HEAD

この状態で続けて実行しようと

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

もうだめよ
といわれてしまうので、なりふり構わずとりあえず、うまくいったやつだけでも!と

git push -f

pushできたのでドキドキしながらlogを確認。

$ git log -p password_all.txt
$

何もでてこない。。!よしやったぞー!

$ git log -1

でもこれで改竄記録でちゃったらだめじゃん。って思ったので、確認。
改竄行為を行う直前の他の修正のコミットがでてくる。

わーーーーーー!やりやがったー!という感じで、めでたしめでたし。

refs/original/refs/<作業branch名>
このファイル<作業branch名>を削除したら、
他の改竄作業を進めることができた。

any comments would be appreciatedです!
優しい方はお前間違ってんぞをそっと諭していただけると嬉しいです。

Happy coding! ( ˘ω˘)

16
6
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
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?