名前を変更するディレクトリを希望の名前の新しいディレクトリにコピーし、古いディレクトリ、、、およびすべてを削除するgit add
こと でgit commit
うまくいくはずだと思いpush
ます。しかし、これが最善の方法ですか?
8 に答える
このエラーが発生した場合:致命的:'foldername'の名前変更に失敗しました:引数が無効です
これを試して:
* nixOS
git mv foldername tempname && git mv tempname folderName
WinOS
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
1.フォルダの名前をoldfolderからnewfolderに変更します
git mv oldfolder newfolder
2. newfolderがすでにリポジトリにあり、それをオーバーライドして使用する場合: -force
git mv -f oldfolder newfolder
git mvで名前を変更した後、インデックスに変更を追加してコミットすることを忘れないでください。
3.大文字と小文字を区別しないファイルシステムでfoldernameの名前をfolderNameに変更します
通常のmvコマンド(git mvではない)を使用した単純な名前変更は、gitからのファイル変更として認識されません。次の行のように「gitmv」コマンドで試してみると
git mv foldername folderName
大文字と小文字を区別しないファイルシステムを使用している場合(たとえば、Macを使用していて、大文字と小文字を区別するように構成していない場合)、次のようなエラーメッセージが表示されます。
致命的:「foldername」の名前変更に失敗しました:引数が無効です
そして、これを機能させるためにできることは次のとおりです。-
git mv foldername tempname && git mv tempname folderName
これにより、最初にフォルダの名前を完全に異なるフォルダ名に変更することで、名前の変更プロセスが分割されます。別のフォルダ名に名前を変更した後、フォルダの名前を最終的に新しいfolderNameに変更できます。これらの'gitmvの後に、変更を追加してコミットすることを忘れないでください。これはおそらく美しいテクニックではありませんが、完全にうまく機能します。ファイルシステムはまだ大文字の大文字小文字の変更を認識しませんが、gitはそれを新しいフォルダ名に名前変更したために認識します、そしてそれは私たちが望んでいたすべてです:)
ファイルシステムを使用してディレクトリの名前を変更できます。git rm <old directory>
次に、git add <new directory>
(ヘルプページ)を実行できます。次に、コミットしてプッシュできます。
Gitは、内容が同じであり、それが単なる名前変更操作であることを検出し、履歴に名前変更エントリとして表示されます。コミットする前に、これが当てはまるかどうかを確認できます。git status
正解はたくさんありますが、フォルダの名前を履歴とともにコピーして貼り付けるためにここに着陸したところ、これが見つかりました
git mv <old name> <new name>
古いフォルダ(それ自体)を移動して、新しいフォルダ内にネストします
その間
git mv <old name>/ <new name>
(「/」に注意)ネストされたコンテンツを古いフォルダーから新しいフォルダーに移動します
どちらのコマンドも、ネストされたファイルの履歴に沿ってコピーされませんでした。最終的に、ネストされた各フォルダの名前を個別に変更しました✔ </ p>
git mv <old name>/<nest-folder> <new name>/<nest-folder>
Webアプリケーションからはできないと思いますが、Gitクライアントですべてのフォルダーの名前を変更できます。コミットしてリモートリポジトリにプッシュするよりも、名前が変更された新しいフォルダーにファイルが移動します。
私は非常によく似た問題 を抱えていました:異なるフォルダの名前を大文字から小文字に変更する必要があり(Abc-> abcなど)、すべてのフォルダの名前をダミーの名前('abc ___'など)に変更し、その後リモートリポジトリにコミットしましたすべてのフォルダの名前を小文字(abcなど)の元の名前に変更しました。
大文字と小文字を区別する名前の変更についてgit mv somefolder someFolder
は、以前は機能していましたが、今日は何らかの理由で機能しませんでした。したがって、回避策として、新しいフォルダを作成し、のtemp
すべてのコンテンツをに移動somefolder
しtemp
、削除somefolder
し、コミットしtemp
、次に作成しsomeFolder
、のすべてのコンテンツをに移動temp
しsomeFolder
、削除temp
し、コミットしてプッシュsomeFolder
しました。someFolder
gitのように表示されます。
フォルダの名前を変更するだけです。gitは「コンテンツトラッカー」であるため、SHA1ハッシュは同じであり、gitは名前を変更することを認識しています。変更されるのはツリーオブジェクトだけです。
rm <directory>
git add .
git commit