_Electronics
と呼ばれる私のパーシャルの最初のコミットメントでは、大文字で書かれていたので、それを_electronics
に変更しました。
Cygwinの下のGitは、新しい名前をコミットした後、このケースを無視したため、ターゲットリポジトリで手動で名前を変更しました。
現在では、コミットされた_electronics
partialを_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 and only case case of directory
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をプローブしてtrueに設定します。
これははるかに簡単です。
git mv Electronics electronics -f
git commit -m "That was easy!"
git config --system core.ignorecase false
私のシナリオでは、2つのフォルダーtests
とTests
があり、Githubでは2つの別個のフォルダーとして表示されましたが、Windowsでは単一のTests
フォルダーとして表示されました。私の目的は、両方をtests
に結合することでした。
次のアプローチを使用しました。
temp
Tests
からtemp
にすべてのコンテンツをコピーしますTests
を削除git rm Tests -r
temp
の名前をtests
に変更します