質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

解決済

git ディレクトリ名を小文字->大文字に変換したら別ブランチにcheckoutできない

u.shino
u.shino

総合スコア12

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

2回答

0評価

1クリップ

836閲覧

投稿2021/11/26 07:06

git管理下のとあるディレクトリを小文字→大文字に変換しました。
そのままだとgitに変更を検知されないため、 git config core.ignorecase false を設定し、以下の作業を行うことで変更自体はcommitできました。

$ ls test $ git mv test test_ $ git mv test_ Test $ git add .

その後、作業をcommitしたブランチから別のブランチにcheckoutしようとしたところ、以下のエラーが出てcheckoutすることができません。

$ git checkout master error: The following untracked working tree files would be overwritten by checkout: ...... Aborting

未commitのファイルは存在しない状態です。
何か解決策はありますでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

winterboum

2021/11/27 14:27

...... のところにはなんとありますか?
u.shino

2021/11/29 01:46

変更点のあるファイル名のリストが表示されます。
CHERRY

2021/11/30 00:19

未commit のファイルは存在しないということですが、 git status の結果はどうなりますか。
u.shino

2021/11/30 01:31

nothing to commit, working tree clean です。
CHERRY

2021/11/30 01:41 編集

ファイルシステムも絡んでいるような気がしますので、確認ですが、お使いの OS は何でしょうか?
u.shino

2021/11/30 01:42

macOS Big Surです。
CHERRY

2021/11/30 02:20

> macOS Big Surです。 macOS の APFS ファイルシステムは、デフォルトでは、大文字・小文字を区別しないと思います。 区別するように初期化してからインストールされているのでしょうか? [Macのディスクユーティリティで利用できるファイル・システム・フォーマット]( https://support.apple.com/ja-jp/guide/disk-utility/dsku19ed921c/mac ) にあるようにディスクのフォーマットによって大文字・小文字を区別するかが決まります。 > APFS: APFSフォーマットを使用します。暗号化や、大文字/小文字を区別するフォーマットが必要ない場合は、このオプションを選択します。 と > APFS(大文字/小文字を区別、暗号化): APFSフォーマットを使用し、ファイル名およびフォルダ名の大文字/小文字を区別し、ボリュームを暗号化します。たとえば、「Homework」と「HOMEWORK」という名前のフォルダは、2つの異なるフォルダです。 のどちらのファイルシステムをお使いですか?
u.shino

2021/11/30 02:29

APFS(暗号化)となっているようなので、後者であるように思います。 ただ、今以下の検証をしてみたんですが、ファイルシステム上ではケースの区別はされていないのかもしれません。 ``` $ mkdir test $ mkdir Test mkdir: Test: File exists ```
winterboum

2021/11/30 21:16

実は質問の「git管理下のとあるディレクトリを小文字→大文字に変換しました。そのままだとgitに変更を検知されないため」に違和感がありました。 私の環境(Linux)ではそういうことがありません。 ということは、Macのgitは file system に合わせて、defaultでは git config core.ignorecase True に設定されているのでしょう。 ですので、おそらく git には罪はなく file system の特性に原因がある。
winterboum

2021/11/30 23:26 編集

ですので、お使いのfilesystem では 大文字の使用は危険 今回の事態の緊急避難としては次でやれるかな 現branch を dev とします。 dev で git mv Test _test してcommitする master にcheckoutする dev をmergeする?  mergeしたなら   master で git mv _test Test し commitする   dev を checkout して master をmerge する  しないなら devとの関係をどうするのか、で手順がかわるかな、

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。