サービス

git で半角スペースが混ざったファイルを消す方法

20130312080143

gitを普段の仕事で使っています。
そうするといろいろ問題が起こるもんです。

そんなトラブルの中でも変な日本語ファイルをアップしちゃった時に困ったので対処方法をまとめて起きます。

img/text のコピー.png

というファイルを間違って「push」しちゃった時がありました。

git で日本語ファイルを使うとろくなことにならないというのは知ってましたが、知らないうちに混ざっていたのですね、変なヤツが。

で、いつものように以下のように消そうとしたところ、どうにもうまく消せませんでした。

git rm img/text のコピー.png

以下のエラーが返ってくるのです。

fatal: pathspec 'img/text' did not match any files

あれ?? 上記のエラー文言に「のコピー.png」がありません。

これはもとのファイル名「text のコピー.png」に「半角スペース」が入っていて「そこでファイル名が切れている」と認識したためです。git側で勝手に「半角スペースがあるからそこでコマンドおわりね♪」と処理されて、正しいファイル名が検出されなかったので、正常にファイルが削除されなかった、というわけです。

「半角スペース」もファイル名の一部だということを指定しないといけません。
「半角スペース」は以下のようにバックスラッシュを使います。

 

バックスラッシュは

「option + ¥」

でだすことができますよ。

ということで消すときは以下のように
半角スペースを表すバックスラッシュを入れてコマンドを打ちます。

rm img/textのコピー.png

これでちゃんと狙い通りに「text のコピー.png」消えてくれますよ。