先日、Git操作で特定のタスクとは全く関係ないファイルを無意識のうちにコミットに含めてしまっていたということがありました。
本来はそんなミスしちゃいけないわけなんですが、してしまったものは仕方ないということで、「あれ、そういえば特定のファイルのみを過去に戻すことってできるのか?」とふと思い立ったところ、ちゃんとGit該当操作があったので、自分の備忘録のためにもブログにしたいと思います!
目次
Gi特定のファイルのみを過去のコミットまで巻き戻しするための操作手順
それでは、Git操作でミスしたときに使える・特定のファイルのみを過去のコミットまで巻き戻しするための操作手順について見ていきましょう!以下、ターミナル操作で行うことを前提としてお話を進めていきます!
1, まずは戻したいコミットのLogを確認する
まずは戻したいログのコミットを確認します。(git logでログ一覧を表示し、戻したい位置のログ(画像赤枠参照)をコピーしておきます。

この場合、間違えた操作の1つ前の状態のログを確認するのが多くの場合において当てはまるのではないかと思います!
2, もとに戻したいファイルの相対パスを確認する
次に、過去の状態に戻したいファイルの相対パスを確認しましょう!
ちなみに、Visual Studio Codeを使っているのであれば、該当ファイルを右クリックして、「相対パスをコピー」を行えば一発でコピーすることができます!
3, git checkoutコマンドを実行する
ここまで確認できたら、以下のようなgit checkoutコマンドを実行します。
git checkout 1で確認したログ 2で確認した相対パス
なんと、これだけで当該ファイルのみを過去のコミットの状態に巻き戻しすることができます!resetとかrevertを使うわけではないのですねー。
特定のファイルを過去のコミットに戻した後はどうすればいいの?
特定のファイルを過去のコミットに戻した後は、改めてコミットし直せばOKです!
事実上、誤った操作を取り消すためのコミットが新しく追加されることにはなりますが、手打ちや目視で過去の状態に戻すよりも確実な操作が行えるので、その点安心ですね!
まとめ
ということで、今回はGit操作でミスしたときに使える・特定のファイルのみを過去のコミットまで巻き戻しするための方法についてご紹介させていただきました!
最初にも言ったように、この操作のお世話になることがないのが一番ではありますが、何か起きたときのために知っておいても損ではないのかもしれませんね。。。