はじめに
git mv
コマンドでファイルを移動しようとした際に "No such file or directory" エラーが発生し、ファイルを移動できないことがありました。本記事ではその原因と対処法について記載します。
やりたいこと
git mv
コマンドを使用して既存のPythonファイル(sample.py
)を別のディレクトリに移動し、同時にファイル名を変更(index.py
)する。
- 現在のフォルダ構造
root
└── sample.py
- 目的のフォルダ構造
root
└── test/
└── script/
└── index.py
本記事ではsample.py
がコミットまでされている事を想定しています。
発生する事象
以下のコマンドを実行すると、エラーが発生します
git mv sample.py test/script/index.py
# 実行結果
fatal: renaming 'sample.py' failed: No such file or directory
原因
移動先のディレクトリ(test/script
)が存在していないため、ファイルの移動ができない
解決手順
1. 移動先のディレクトリを作成
mkdir -p test/script
-
-p
オプション:test ディレクトリが存在しなくても、必要な親ディレクトリ(本気でいう test)も同時に作成してくれます。
2. ファイルの移動を実行
git mv sample.py test/script/index.py
実行結果の確認
1.statusコマンドでsample.py
が対象の場所に移動できたか確認します。
git status
2.コマンドを実行すると次のように、ファイルが renamed
されてることを確認できました。
git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: sample.py -> test/script/index.py
3.実行後のフォルダ構造は次のようになっています。
root
└─test
└─script
index.py