【Git】git stash apply でエラーが出た時の対処法

  • 2020-01-29
  • 2020-02-15
  • Git
Git Git-Logo

git stash applyでエラーが出る

作業ディレクトリの内容をstash -uで退避後、applyを実行すると以下のエラーが表示される。
このエラーが出る限り、退避を元に戻せない模様。

どういう時に起こるエラーか?

エラー文は「stashしたuntrackedのファイルをリストアできない」と言っている。
どうやら退避の戻し先となるブランチに、stashしたuntrackedのファイルと同名のファイルが存在する場合に起こるっぽい。

解決法

方法1. 作業ディレクトリからuntrackedのファイルを削除する。

git cleanを使って、作業ディレクトリからuntrackedのファイルを一度削除する方法。

削除対象とするuntrackedのファイルを確認し、

カレントディレクトリ内のuntrackedのファイルをすべて削除する。

ファイルを個別に削除したい場合は、オプションの後ろにファイルパスを指定すればOK。

方法2. 強制的にstash applyを実行する。

正確には、stashした内容を作業ディレクトリにマージする方法。

この場合、mergeコマンドで対象stashを指定すればOK。

ただ、これだとマージコミットが生成されることがあるので、マージコミットを取り消したい場合は、resetを実行する。

まとめ

git stash applyでエラーが出たときの対処法をまとめました。
チーム開発(特に新規開発)だとstashする場面が度々発生するため、覚えておいて損はないと思います。