Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまった

Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまう現象と、対処法を紹介します。

現象

Gitリポジトリに、同名で大文字、小文字違いのフォルダ名が2つ作成されてしまっています。
それぞれのフォルダに別のファイルが追加されています。
Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまった:画像1
Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまった:画像2

なお、Windowsではディレクトリ名の大文字と小文字が区別されないため、クローンを作成すると、 2つのフォルダのファイルが1つのディレクトリに配置されています。
Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまった:画像3

原因

よくある事例では、クローンを作成した後、ディレクトリの名称を大文字小文字を変えてしまうと、 ディレクトリ名の変更後にリポジトリにファイルを追加すると、変更後の名称でディレクトリがGitリポジトリに作成され、 新しく作成されたディレクトリにファイルが追加されてしまうためです。ディレクトリ変更前にGitリポジトリに 追加されていたファイルは変更前のフォルダにコミットされます。

対処法

次の手順で対処できます。

  1. Gitリポジトリ(サーバー側)で同名のフォルダのうち廃止したいほうのフォルダ名を変更します。
  2. プル、または、クローンを作成します。
  3. 変更したフォルダのファイルを正しい名称のフォルダに移動します。
  4. コミットしてプッシュします。

Gitリポジトリのフォルダ名の修正

Gitリポジトリの管理画面などで、大文字小文字違いのフォルダのうち廃止したいフォルダ名を別の名称に変更します。
今回、"RegExDemo" と "RegexDemo" フォルダがあり、"RegExDemo"を廃止したいとします。
"RegExDemo"フォルダの名称を"RegExDemoB"に変更します。

Gitのリポジトリに大文字と小文字の違いの同名のフォルダが作成されてしまった:画像4

Gitコマンドで実行する場合は、以下のmvコマンドを実行します。

git mv <変更前フォルダ名> <変更後フォルダ名>

または、Gitプロンプトで以下のコマンドを実行します。

mv <変更前フォルダ名> <変更後フォルダ名>
今回の例では以下のコマンドになります。

mv /RegExDemo /RegExDemoB 

プル、または、クローンを作成

ローカルマシンでリポジトリのクローン、またはプル、Visual Studioの場合は同期を実行します。
クローン作成手順はこちらの記事を参照してください。

変更したフォルダのファイルを正しい名称のフォルダに移動

プルすると、名称変更したディレクトリ(RegExDemoB )にファイルがダウンロードされますので、大文字、小文字違いの正しいディレクトリ(RegexDemo)にファイルを移動します。

コミットしてプッシュ

ファイルをコミットしてプッシュします。 コミットの手順はこちらの記事、 プッシュの手順はこちらの記事を参照してください。

上記の手順により、大文字小文字違いの同名のフォルダを1つのフォルダに統合できます。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2023-01-17
Copyright © 1995–2025 iPentec all rights reserverd.