11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WindowsでGitする時は大文字・小文字の罠に注意

Last updated at Posted at 2014-05-28

#背景
 Windowsのファイルシステムでは、半角英字の大文字・小文字を区別しません。表記上は区別できますが、ファイルパスとして大文字と小文字が等価となるようです。そのため、大文字・小文字を区別するunixサーバ等とファイル転送をする際にはこの問題が常にそばにあります。

 この記事ではGitの作業フローを例に、現象の一例を示します。

#再現手順
※クライアントとしてTortoiseGitを使用します。

大文字混じりのファイル aBaBaB.txt を作成して git add
git1.PNG

ファイルをローカルで削除。
git3.PNG

小文字だけの同名ファイル ababab.txt を作成。
 ※ Git管理下のファイルだと誤認されます。
git4.PNG

ababab.txt を編集して git commit すると、 aBaBaB.txt として扱われます。
git5 - コピー.PNG

#例えばどんな時に発生するか
 開発工程をGitで管理し、本番サーバはSCP等でファイル転送を行って管理している構成において、運用開始後に緊急のバグFix等があり、何らかの理由で本番のソースコードがGitリポジトリの内容と乖離してしまったケースを想定します。
 前述のバグFixでファイル命名規則による右のような修正 myClass.php → myclass.php を行っていた場合に、後日、差分をマージする作業をWindows上で行うと、その修正が検出されずリポジトリへの反映が漏れる現象につながります。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?