web-dev-qa-db-ja.com

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

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

78
entropid

msysgitの問題のこのコメント (別の大文字と小文字を区別しないOS:Windows)に似た回避策かもしれませんか?

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

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

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

Git 2.0.1(2014年6月)以降、git mv Folder folder正常に動作するはずです!

Git:ファイル名の大文字の変更 」を参照してください

119
VonC

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

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

Disk Utility Settings

17
adib

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

git config core.ignorecase false

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

[core]
    ignoreCase = false
14
Brandon Yang

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

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

11
Arafangion
git mv "Folder" "Folder2"
git mv "Folder2" "folder"
git commit -a -m "my message"
5
1
Philip Oakley