GeekBox

IT系エンジニアの雑記

【Git】.gitignoreでのシンボリックリンクの扱い方

たとえば以下のような構成のプロジェクトがある場合。
(git init済み)

[crayon-5dcc00f69a5a1434845068/]

何も設定していない場合のgit statusコマンドでは以下の用に出力される。
[crayon-5dcc00f69a5c0166205891/]

treeコマンドの結果で分かる通り、logファイルはシンボリックリンクである。
ログとかtmpファイル等の可変的なものをバージョン管理で扱うと色々面倒なので除外しようとした時にgitignoreを書くんだけども、
普通のディレクトリを除外する時は以下のように書けば除外出来る。

[crayon-5dcc00f69a5c9001019622/]

[crayon-5dcc00f69a5d0636259397/]

[crayon-5dcc00f69a5d7007190156/]

sample_dirが表示されていないのが確認できる。
ただしシンボリックリンクを除外する場合は以下の書き方でなければ除外できない。

[crayon-5dcc00f69a5df250369630/]

[crayon-5dcc00f69a5e6501328796/]

[crayon-5dcc00f69a5ed489248847/]

シンボリックリンクはあくまで対象のディレクトリのパスが書かれているだけの「ファイル」なのでこうなる模様。

ちなみに

/log/と書いた場合にgit statusを見てみると
[crayon-5dcc00f69a5f5184813505/]

[crayon-5dcc00f69a5fc435084300/]

[crayon-5dcc00f69a603053679999/]

出てきちゃう。

-Git
-,