🔙

【git reset】時を戻そう【git clean】

2024/04/17に公開

はじめに

私は現在プログラミングスクール受講期間5ヶ月目に突入し、オリジナルアプリの個人開発を行なっています。
開発を行う中でカリキュラムでは触れられていない技術の検証を行なったり、
使ったことのないgem(ライブラリ)を導入してみたり、
既存のアプリを使って新たな知見の検証を行いたい場面がありました。
公式ドキュメントや記事を参照しながら環境構築がうまくいかないことも多くある中で以下のgitコマンドを用いることで「とりあえずやったれ!!」精神でいろいろ検証することができたので紹介したいと思います。

記事の対象

  • プログラミング初学者の方
  • gitコマンドでコードリセット、ファイルリセットする方法が知りたい方
  • 開発中にいろいろなファイルを跨ってコードを改修したり、挙動検証をしてあとで一括で元に戻す方法を知りたい方

結論

困った時は時を戻そう

ターミナル
git reset --hard HEAD
git clean -fdx
結果的に上記のgitコマンドを実行すれば時を戻すことができます。

これが こうなる

コマンド処理の解説

ターミナル
git reset --hard HEAD

ですが Untracked なファイル(リポジトリにバージョン管理対象としてまだ登録されていないファイル)は git reset コマンドでは消えません。

そういうファイルを消したいときに登場するのがコイツです。

ターミナル
git clean -fdx

完全にぺこぱ(動詞)してくれます。

git clean

作業ディレクトリ内の変更されていない未追跡ファイルやディレクトリのみを対象に削除をおこないます。
但し、すでに追跡されているファイルやディレクトリは影響を受けません。

fオプション

強制実行オプションです。
このオプションを指定すると、確認をスキップして実行できます。

dオプション

未追跡のディレクトリも削除されます。

xオプション

無視設定を無効にするオプションです。
.gitignore ファイルなどで無視されているファイルやディレクトリも削除対象となります。
このオプションを指定しない場合 .gitignore で指定されたファイルやディレクトリは削除されません。

これらのオプションを全て合わせたものが上記のコマンドです。

さいごに

時を戻したら不可逆に戻せませんのでご注意ください^q^

Discussion