そのため、を使用してリポジトリ内のフォルダーの名前を変更しようとしていますが、git filter-branch --index-filter
常に「致命的: ソースが正しくありません」というエラーが発生します。
この問題は、フォルダーの代わりにファイルを使用するテスト リポジトリで簡単に示されます。
準備:
$ git init
$ echo whatever >> my_file.txt
$ git add .
$ git commit -m "initial"
$ echo whatever2 >> my_file2.txt
$ git add .
$ git commit -m "second"
今、私はに変更しようとしていmy_file.txt
ますyour_file.txt
:
$ git filter-branch --index-filter 'git mv my_file.txt your_file.txt' HEAD
しかし、うまくいきません:
Rewrite dac9a2023bdf9dd0159fab46213d9e1342ae9f75 (1/2)fatal: bad source, source=my_file.txt, destination=your_file.txt
index filter failed: git mv my_file.txt your_file.txt
ただし、git mv
通常実行される同じコマンドは問題なく動作します。
$ git mv my_file.txt your_file.txt
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: my_file.txt -> your_file.txt
#
確かに、ここで重要な何かが欠けていますが、それは何ですか?