Quantcast
Channel: てっく煮ブログ
Viewing all articles
Browse latest Browse all 42

SourceTree が Git のグローバルな無視リストを書き換えて困った話

$
0
0

Git を使ってるときに、git status に存在するはずのファイルが Untracked files に出てこない現象に出会って困ってしまった。

いろいろ調べてみたところ、SourceTree さんがインストール時にグローバルな無視リストを作成していたことが判明した。SourceTree を使ってないときにも影響がでるのでたちが悪い。

勝手に書き換えられてしまうファイルはこれだ!!

Windows 版の例だけど、まず、.gitconfig

[core]
    excludesfile = C:\\Users\\username\\Documents\\gitignore_global.txt

Mac の場合は /User/username/.gitignore_global に設定する模様。

gitignore_global.txt はこんな感じ。

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr

Windows 系の開発で自動生成されたり、コミットする必要のないファイルが列挙されている。

.gitconfig に excludesfile がないときに発動

セットアップ時に、最初のダイアログには [Allow SourceTree to modify global Git and Mercurial config files] という設定項目がある。

デフォルトでチェック入ってるんだけど、これが入ってる以上は、.gitconfig がいじられても文句は言えない。

デフォルトのままで先に進むと、.gitconfigexcludesfile の設定がない場合には SourceTree さんは上に書いたような書き換えを行ってくれる。

シンセツダナー。

この親切すぎて涙がでてしまう挙動は、当然のように一部のユーザーの逆鱗に触れることとなり、非難轟々、雨嵐霰がふき乱れた。

「最低なやつめ! なんで gitignore_global.txt を勝手に作って .dll と .exe を除外しちゃうんだよ!?」というユーザーのお怒りの声。

これに対して、「怒らせてごめんよ。すでにグローバルな ignore ファイルがあればそんなことはしないよ。」と答える SourceTree さん。

「git に不慣れな人を助けるために、グローバルな ignore ファイルがないならそうしてるんだよ。だって、exe や dll をコミットすることなんてめったにないでしょ?」。まぁ、それはそうなんだけども・・・。

「次のリリースでは、もうちょっと注意を引きやすい警告を出すようにして、バイナリー ファイルをコミットしたい人を困らせないようにするよ」と、将来のバージョン アップを誓っている。

最近は警告ダイアログをだしてくれる

で、その結果、最近のリリースでは、こんなダイアログが表示されるようになった。

ざっと訳すと

グローバルな ignore ファイルがないようだけど、SourceTree がデフォルトのやつを設定したげようか?

.exe とか .dll とか .obj とか .suo とか Debug のようなフォルダーとか、普通はソース管理しないようなやつを追加しといてあげるよ。

もし、デフォルトで全部のファイルをみれるようにしたいなら、とりあえず No を選んどいてね。あとで、Tools > Options から設定することもできるよ。

と書いてある。

次のキャプチャーを見る限りは Mac 版でも「グローバル無視リスト」を書き換える処理はあるようだ。

(画像は kashew_nuts-tech: Mac用Git/MercurialのGUIクライアント-SourceTree-を試してみた より)

まとめ

SourceTree の Windows 版を試した人 (特に初期のバージョン) は、マイドキュメント直下に gitignore_global.txt がないか確認しておくとよいだろう。このファイルが残っていると、Git を使っていて無駄に混乱してしまうかもしれない。分かってて設定する分にはいいんだけども。


Viewing all articles
Browse latest Browse all 42

Trending Articles