Windowsのブランチをチェックアウトしているときに問題に直面しています。 1つのフォルダが空のスペースで終わり、gitは元のパスにファイルを置いてエラーを起こそうとしている間に、ウィンドウに自動的にフォルダをトリミングします。Gitのフォルダの名前を変更します。すべてのブランチとすべてのリビジョン
fatal: cannot create directory at 'raisesoft/61571_delivery /acl': No such file or directory
Linuxの場合、Linuxは自動的にフォルダをトリミングしないため、正常に動作します。
私はそのフォルダの名前を変更しようとしています。これは私が思いついたスクリプトです:
git filter-branch --tree-filter '
if [ -d "61571_delivery " ]; then
mv "61571_delivery " "61571_delivery"
fi' --force HEAD
しかし、それは動作しません。フォルダの名前はまったく変更されませんでした。私はLinuxのbashに堪能ではないので、ほとんど助けが大いに評価されるだろう。
ありがとうございました
Linux上でうまくいけば、Linux上で手動でディレクトリの名前を変更した後でコミットを試してみてください。 – ashmaroli
このコマンドは、repoルートのディレクトリを探します。エラーメッセージから、実際にはリポジトリのサブディレクトリにあるという印象を受けました。スクリプト内のパスを限定するだけですか? –
他のいくつかの注意点: 'filter-branch'引数の最後に' - --all'を追加したいと思うかもしれません(すべてのリビジョンを言ったので)。レポが非常に大きい場合、これはかなりの時間がかかります(既存のすべてのバージョンを完全にチェックアウト、更新、再コミットする必要があるため)。また、まだ計画していない場合は、操作によってすべてのコミットのSHA1 IDが変更され、このレポのすべてのユーザーまたはすべてのユーザーに対してカットオーバ手順が必要になります。 –