# 背景
仕事では主にLaravelを使用して開発を行っている。
ソースコードはGitでバージョン管理を行い、composerによるパッケージのバージョン管理をしている。
Aさんが、composer.lockをGit管理したくないとのことで.gitignoreにcomposer.lockを追加した。
果たして、これは良いのか・・・???と疑問になり調べた。
# 結論
結論から言うと、「composer.lockはGit管理すべき」である。
# composer installとcomposer updateの違い
composerには、「composer install」 と 「composer update」というコマンドがある。
# composer.lockの内容をもとにパッケージのインストールを行う # composer.lockがない場合、composer.jsonに従ってパッケージのインストールを行い、composer.lockを作成する $ composer install # composer.jsonの内容をもとに各パッケージの最新化・インストール・composer.lockの更新を行う $ composer update
ローカル環境を構築する際や、本番環境をデプロイするときは、composer installを使用していると思う。
これは、composer.lockに記されたパッケージバージョン情報などを元に、パッケージのインストールが行われている。
そのため、compsoer.lockをGit管理していない場合、composer updateと同等の挙動となり、
環境によってインストールされているパッケージのバージョンが異なるという状況が生まれる。
バージョン差分による事故を防ぐためにも、composer.lockはGit管理しておきたい。