859

名前を変更するディレクトリを希望の名前の新しいディレクトリにコピーし、古いディレクトリ、、、およびすべてを削除するgit addこと でgit commitうまくいくはずだと思いpushます。しかし、これが最善の方法ですか?

4

8 に答える 8

1602
于 2012-06-25T05:22:38.827 に答える
151

このエラーが発生した場合:致命的:'foldername'の名前変更に失敗しました:引数が無効です

これを試して:

* nixOS

git mv foldername tempname && git mv tempname folderName

WinOS

git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName

于 2014-11-26T00:45:40.983 に答える
81

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はそれを新しいフォルダ名に名前変更したために認識します、そしてそれは私たちが望んでいたすべてです:)

于 2016-03-04T17:42:06.530 に答える
13

ファイルシステムを使用してディレクトリの名前を変更できます。git rm <old directory>次に、git add <new directory>ヘルプページ)を実行できます。次に、コミットしてプッシュできます。

Gitは、内容が同じであり、それが単なる名前変更操作であることを検出し、履歴に名前変更エントリとして表示されます。コミットする前に、これが当てはまるかどうかを確認できます。git status

于 2012-06-25T05:18:35.920 に答える
10

正解はたくさんありますが、フォルダの名前を履歴とともにコピーして貼り付けるためにここに着陸したところ、これが見つかりました

git mv <old name> <new name>

古いフォルダ(それ自体)を移動して、新しいフォルダ内にネストします

その間

git mv <old name>/ <new name>

(「/」に注意)ネストされたコンテンツ古いフォルダーから新しいフォルダーに移動します

どちらのコマンドも、ネストされたファイルの履歴に沿ってコピーされませんでした。最終的に、ネストされた各フォルダの名前を個別に変更しました✔ </ p>

git mv <old name>/<nest-folder> <new name>/<nest-folder>
于 2020-12-30T08:06:57.987 に答える
4

Webアプリケーションからはできないと思いますが、Gitクライアントですべてのフォルダーの名前を変更できます。コミットしてリモートリポジトリにプッシュするよりも、名前が変更された新しいフォルダーにファイルが移動します。

私は非常によく似た問題 を抱えていました:異なるフォルダの名前を大文字から小文字に変更する必要があり(Abc-> abcなど)、すべてのフォルダの名前をダミーの名前('abc ___'など)に変更し、その後リモートリポジトリにコミットしましたすべてのフォルダの名前を小文字(abcなど)の元の名前に変更しました。

于 2016-08-02T09:51:59.737 に答える
2

大文字と小文字を区別する名前の変更についてgit mv somefolder someFolderは、以前は機能していましたが、今日は何らかの理由で機能しませんでした。したがって、回避策として、新しいフォルダを作成し、のtempすべてのコンテンツをに移動somefoldertemp、削除somefolderし、コミットしtemp、次に作成しsomeFolder、のすべてのコンテンツをに移動tempsomeFolder、削除tempし、コミットしてプッシュsomeFolderしました。someFoldergitのように表示されます。

于 2020-03-20T22:30:15.613 に答える
-24

フォルダの名前を変更するだけです。gitは「コンテンツトラッカー」であるため、SHA1ハッシュは同じであり、gitは名前を変更することを認識しています。変更されるのはツリーオブジェクトだけです。

rm <directory>
git add .
git commit
于 2012-06-25T15:45:22.927 に答える