#GitHubに同じ内容のフォルダが複数あってビックリした
どういうことかっていうと、フォルダの名前をローカルで英大文字→小文字に変更をしたところ、何故かGitHubが「別物」として認識してしまったのです。
具体的には、以下のような状態になってしまったわけです。
[GitHub上]
img
├─Thumbnail
│ ├─画像1
│ ├─画像2
│ ├─画像3
│ └─画像4
├─thumbnail
│ ├─画像1
│ ├─画像2
│ ├─画像3
│ └─画像4
[ローカル]
img
├─thumbnail
│ ├─画像1
│ ├─画像2
│ ├─画像3
│ └─画像4
名前を変更した当初はこんなことになっているとは気づかず、後で困って解決法を模索したので、今回はその時の話です。
##この状態、何が困るのか ーーバグが起こりやすくなります。
諸事情あって、普段使っていた開発ディレクトリとは違う場所に、GitHubからクローンしたときのこと。
GitHub上にある"Thumbnail"フォルダと"thumbnail"フォルダが衝突したというメッセージがでました。
「え?」と思ってクローン先のフォルダを確認すると、"Thumbnail"フォルダ一つだけクローンされていました。
一方、ソースコード上での該当フォルダの参照は、"thumbnail"の表記に統一されている。
するとどうなるかというと、環境によっては英小文字と大文字を区別して、
「このフォルダに格納されているファイルが見つからない!住所間違ってるよ!!」という事態になります。困る。
##もう一度リネームするんじゃダメなの? ーーダメでした。
ローカル上でリネームしても、GitHub上に2つのフォルダは残ったままになります。
いちいち衝突するし、他の人がクローンするときにまた特定のファイルが表示されなくなってしまうのはビックリするでしょう。
何より本番障害につながるのが怖いですよね。
#試した解決法
リネームしてダメなら、2つともフォルダごと削除→コミット→正しいフォルダ名で新しいフォルダとしてコミットするのが一番楽かなと。
##前提
まずはGitHubのリポジトリをクローンしたローカルディレクトリが2か所必要です。
私の場合は、以下の①②の状況です。
①開発メインディレクトリ内に"thumbnail"フォルダのみ存在
②別ディレクトリ内にクローンした"Thumbnail"フォルダのみ存在
##フォルダ整理手順
- "thumbnail"フォルダをローカル上の安全な場所に退避させる
- ①の"thumbnail"フォルダを削除してコミット
- ①からGitHubにPush
- ②のディレクトリに移動、Fetch,Pullしておく
- ②の"Thumbnail"フォルダを削除してコミット
- ②からGitHubにPush
- GitHub上から"thumbnail", "Thumbnail"ともに削除されていることを確認する
- ①のディレクトリに、退避させていた"thumbnail"フォルダを復元する
- ①からコミット、Pushする
手順が多くてちょっとめんどくさいですが、これで整頓できました。
#こんなことになるのはレアケースだと思いますが、だからこそ備忘録として。
今回の事象に直面した時、私は焦って調べたけどあまりヒントが得られず…。
検索の仕方が悪かったのかもしれませんが、なんてワードで調べたらいいんですかねこの事象??
リネームで大文字→小文字に変更するだけなんて、皆さんあまりやらないのかもしれません。
そんなわけで、また同じような悩みが発生したときのために、備忘録として残すことにしました。
他の賢いやり方があるよ!という方がいれば、ぜひ教えてください!!