パーシャルコールの最初のコミットメントでは、_Electronics
大文字で始めて書かれていましたが、次にに変更しました_electronics
。
新しい名前をコミットした後、cygwinの下のGitはケースを無視したので、ターゲットリポジトリで手動で名前を変更しました。
コミットされた_electronics
パーシャルがに変更される場合があります_Electronics
。
何が悪いのでしょうか?
パーシャルコールの最初のコミットメントでは、_Electronics
大文字で始めて書かれていましたが、次にに変更しました_electronics
。
新しい名前をコミットした後、cygwinの下のGitはケースを無視したので、ターゲットリポジトリで手動で名前を変更しました。
コミットされた_electronics
パーシャルがに変更される場合があります_Electronics
。
何が悪いのでしょうか?
回答:
2つの異なるものとして表示されますが、大文字と小文字を区別しないシステムで問題が発生します。この場合は、パスまたはファイル名をタブで補完していることを確認してください。さらに、ある場合に何かの名前を変更するには、次のようにします。
mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
これは、変更をコミットしてからコミットを折りたたむ明示的な方法です。これを行うためのより短い方法は、インデックスと作業フォルダーをすべて1つに操作することです。
git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"
これはディレクトリ名の調整にも関連しています:git mvとディレクトリの大文字と小文字の変更のみ
git mv file.txt File.txt
。これが新しいgit機能かどうかはわかりません。
これは、core.ignorecase
構成値に依存します。これは、大文字と小文字を区別するファイルシステムではfalseに設定され、Windowsのmsysgitではtrueに設定されます。
core.ignorecase
trueの場合、このオプションはさまざまな回避策を有効にし、FATなどの大文字と小文字を区別しないファイルシステムでgitが適切に機能するようにします。たとえば、gitが「Makefile」を予期しているときにディレクトリリストに「makefile」が見つかった場合、gitはそれが実際に同じファイルであると想定し、「Makefile」として引き続き記憶します。
デフォルトはfalseです。ただし、git-clone(1)またはgit-init(1)は、リポジトリの作成時に適切な場合にcore.ignorecaseをプローブして設定します。
Gitでのファイル名の大文字の変更に関するこの返信の詳細。
git config --unset-all core.ignorecase && git config --system core.ignorecase false
sudo で使用します。
私のシナリオでは、2つのフォルダーがtests
ありTests
、Githubでは2つの別個のフォルダーでしたが、Tests
Windowsでは1つのフォルダーとして表示されました。私の目的は、両方をに組み合わせることでしたtests
。
私は次のアプローチを使用しました:
temp
Tests
しますtemp
Tests
git rm Tests -r
temp
を変更tests