私はそれが目的の名前で新しいディレクトリに名前を変更するディレクトリをコピーするために動作するはずだと思うし、古いディレクトリを削除し、そしてgit add
、 git commit
そしてpush
すべてのもの。しかし、これは最善の方法ですか?
私はそれが目的の名前で新しいディレクトリに名前を変更するディレクトリをコピーするために動作するはずだと思うし、古いディレクトリを削除し、そしてgit add
、 git commit
そしてpush
すべてのもの。しかし、これは最善の方法ですか?
回答:
基本的な名前変更(または移動):
git mv <old name> <new name>
大文字と小文字を区別する名前変更-例 from casesensitive
からCaseSensitive
—2つのステップを使用する必要があります。
git mv casesensitive tmp
git mv tmp CaseSensitive
…コミットとプッシュが後に続くのは、gitリポジトリのディレクトリの名前を変更する最も簡単な方法です。
casesensitive
にCaseSensitive
、この方法を行うことができます git mv casesensitive Temp
し、その後 git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
、再度追加してコミットします
git config core.ignorecase false
コマンドを実行してから、続けてコマンドを実行する必要があり、2番目の部分ではsource is empty
エラーが発生しました。
このエラーを受け取った場合:致命的: 'foldername'の名前変更に失敗しました:無効な引数
これを試して:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
し、git mv tempname folderName
Windows上で動作するはずです。
1.フォルダの名前をoldfolderからnewfolderに変更します
git mv oldfolder newfolder
2.新規フォルダをリポジトリにすでに存在する&あなたはそれを上書きして使用したい場合: - 力
git mv -f oldfolder newfolder
git mvで名前を変更した後、インデックスに変更を追加してコミットすることを忘れないでください。
3.大文字と小文字を区別しないファイルシステムでのfoldernameの名前をfolderNameに変更
通常のmvコマンド(git mvではない)を使用した単純な名前変更は、gitからのファイル変更として認識されません。次の行のように「git mv」コマンドで試してみると
git mv foldername folderName
大文字と小文字を区別しないファイルシステムを使用している場合、たとえばMacを使用していて、大文字と小文字を区別するように構成していない場合、次のようなエラーメッセージが表示されます。
致命的: 'foldername'の名前変更に失敗しました:無効な引数
そして、それを機能させるためにあなたができることは次のとおりです:-
git mv foldername tempname && git mv tempname folderName
これは、最初にフォルダの名前を完全に異なるフォルダ名に変更することにより、名前変更プロセスを分割します。別のフォルダー名に名前を変更した後、最終的にフォルダーの名前を新しいfolderNameに変更できます。これらの「git mv」の後、再び、変更を追加してコミットすることを忘れないでください。これはおそらく美しいテクニックではありませんが、完璧に機能します。ファイルシステムはまだ大文字と小文字の変更を認識しませんが、gitはそれを新しいフォルダ名に名前変更するために認識します。
ファイルシステムを使用してディレクトリの名前を変更できます。次に、あなたが行うことができますgit rm <old directory>
し、git add <new directory>
(ヘルプページ)。その後、コミットしてプッシュできます。
Gitは内容が同じであり、名前変更操作であることを検出し、履歴の名前変更エントリとして表示されます。あなたが使用するコミットの前にこれが事実であることを確認することができますgit status
2つのステップで解決しました。mvコマンドを使用してフォルダの名前を変更するには、そのための権限が必要です。権限がない場合は、次の手順に従ってください。casesensitiveをCasesensitiveに名前変更したいとします。
手順1:エクスプローラーで、フォルダーの名前を(大文字と小文字を区別して)別の名前に変更します。たとえば、大文字と小文字を区別して名前をfolder1に変更すると、この変更がコミットされます。
手順2:この新しく名前が付けられたフォルダー(folder1)の名前を、大文字と小文字を区別する予定の名前(Casesensitive)に変更します。folder1の名前をCasesensitiveに変更します。この変更をコミットします。
大文字と小文字を区別する名前の変更について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