はじめに
Windowsの話です。
Git管理されているファイル名の大文字小文字をgit mv
コマンドで変更しようとしたときに、
fatal: not under version control
というエラーが出るときがありますが、その解消方法の説明になります。
原因
Windowsはファイルの大文字小文字を違いとして認識しないので、Gitにファイル名が変わったことを明示的に教えてあげる必要があります。
上記エラーが出る場合、恐らくWindowsの機能などを使って既にファイル名を変更済みなのではないでしょうか。
解決方法
ひとまずファイル名を元に戻してもらって(VSCodeやエクスプローラー、mvなどで)、その後、git mv
コマンドを叩きます。
具体例
修正前: aaa.txt
修正後: AAA.txt
# いったん元に戻す mv AAA.txt aaa.txt # Gitのコマンドでファイル名を修正する git mv aaa.txt AAA.txt
これでgit status
したときの変更としても表示されると思いますので、
これ以後は通常通りgit add
, git commit
, ...と続けていただければと思います。
おわりに
使用しているフレームワークによって、大文字 or 小文字を指定されるケースがあります。
Windowsの場合(Windowsのファイルシステムを参照している場合)はそこを間違えても動いてたりするので、今回のようなケースに出会いやすいかなと思いました。
以上でした!
(追記)
大文字小文字を修正したことが原因で、対象のファイルがGitに変更と検知されてgit status
に出てきてしまい、新たにgit pull
してもAbortされてしまう場合には…
こちらを参考に、強制的にローカルの内容を最新の状態で更新してしまうとよいと思います。