Gitでの大文字と小文字の区別


84

gitで問題が発生しました。core.ignorecase一部のフォルダーの名前の大文字と小文字を変更したかったので、基本的にfalseに設定しました(大文字と小文字を区別しないファイルシステムを備えたOSXを使用しているため、変更は他の方法では表示されませんでした)。データをプルしたとき、名前が変更されたすべてのフォルダーが、古い名前と新しい名前の両方でリポジトリに2回表示されることに気付きました。古いフォルダはローカルに表示されないため、削除する方法がわかりません(core.ignorecasetrueに設定しようとしましたが、役に立ちません)。


1
たぶん、イメージ上にext3ファイルシステムを作成してマウントし、この大文字と小文字を区別するファイルシステムをプルすることができます。
アンドレピュエル2012年

@AndréPuelまあ、実際に私は「もっと簡単な」何かを探していました。:Pしかし、アドバイスをありがとう、他の解決策が見つからない場合はそれを選びます。
エントロピッド2012年

回答:


126

msysgitの問題(大文字と小文字を区別しない別のOS:Windowsの場合)のこのコメントと同様の回避策が役立つ可能性がありますか?

私はこれと同じ問題に遭遇しました。Eclipseでパッケージ名をリファクタリングし、フォルダー名が元に戻らないため、以前のビルドへの切り替えが失敗しました。私はWindows7、Git1.7.0.2.msysgit.0を使用しています

私のフォルダはWindowsでは「folder」に名前が変更されましたがFolder、Gitでは「」と表示されていました。Windowsで
名前を「Folder」に変更してから実行することで、問題を修正しました。

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

ことを注意gitの2.0.1(2014年6月)以来、git mv Folder folderちょうど動作するはずです!

参照してください「のGit:ファイル名の大文字と小文字を変更します


1
この方法で名前を変更すると、2回目の名前変更に非常に時間がかかる可能性があることに気付きました。答えは辛抱強くなることです。フォルダは最終的に名前が変更され、コミットできます。
NathanAldenSr 2014年

同じようにする別の方法は、「Folder」の名前を「Folder2」に変更してコミットし、次に「Folder2」を「folder」に変更して最後のコミットを修正することです。
DaniCE 2015年

@DaniCE答えを編集しました:git 2.0.1を使用すると、これははるかに簡単になるはずです。
vonC 2015年

22

macOSで次のコマンドを使用します。これにより、ファイル名で大文字と小文字が区別されるようにgit構成が変更されます。

git config core.ignorecase false

次のように編集~/.gitconfigして設定することで、これをグローバルに設定できますcore

[core]
    ignoreCase = false

ケースの名前変更を含むリベースを実行してgitを成功させるために、私は正反対のことをしました。ありがとう!
ソリン

21

大文字と小文字を区別するファイルシステムを使用してディスクイメージ(できればスパースバンドルディスクイメージ)を作成し、そこでgitリポジトリをチェックアウトできます。

以下のディスクユーティリティのスクリーンショットは、大文字と小文字を区別するディスクイメージを作成する方法を示しています。

ディスクユーティリティの設定


大文字と小文字の区別に起因するこの問題やその他の謎に対する、はるかに優れた永続的な解決策。ディスクイメージを作成しました。古いGitリポジトリをコピーしました。すべてのgitリポジトリを新しいスパースバンドルバージョンに保持していた場所からシンボリックリンクを作成しました。通常のワークフローに戻ると、これに再び遭遇することはありません。
jwd630 2015

この方法で作成されたディスクは非常に低速です。
ミンキパン2016

1
@MinqiPan、私も同じ懸念を抱いていましたが、APFSボリュームを作成する場合はそうではないはずです。APFSボリュームは同じ「コンテナ」パーティション存在できるため、パフォーマンスが低下することはありません。
ビクターセルジエンコ

12

Mac OS Xは、デフォルトで「大文字と小文字は区別されませんが、大文字と小文字は区別されません」です。これは重要な違いです。

別のディスクイメージを作成し、具体的に「HFS大文字と小文字を区別する」としてフォーマットすることをお勧めします。


ヒントをありがとう、しかしこれの上の投稿はすべてを解決しました!
エントロピッド2012年

7
残念ながら、多くの悪いソフトウェア(もちろん、Adobe)は、デフォルトの壊れたOSXファイルシステムに依存しています。注意してください。
ジムスチュワート


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.