git reset --hardでのファイル変更取り消しについて

  • 44
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

作業中に、まだインデックスに登録していない作業ツリーのファイルを
HEADの状態に戻したいことがあります。

そこでためしに、git reset --hard HEAD -- [任意のfilename]とやったところ
fatal: Cannot do hard reset with paths.と怒られました。

このような場合の対処について説明します。

対処法

git resetコマンドの場合、--mixed--hard--softのオプションを使用すると
引数には、<commit>しか指定できません。

そのため、特定のファイルのみを過去のある時点に戻す場合はgit checkoutを利用します。

例えばファイルtest_file.txtをHEADの状態に戻す場合は、下記のように実施します。

$ git checkout HEAD -- test_file.txt