私は特定のプロジェクトで一人のプログラマーでしたが、今では他の誰かが共同作業者として参加しています。写真に写っているのは私だけで、bundler
の更新はスムーズで、Gemfile.lock
がGitによって追跡されていることを2度考えたことはありません。
新しい共同作業者は、リポジトリのクローンを作成した後にbundle install
を実行し、Gemfile.lock
は次のように更新されました。
Gemfile.lock
@@ -141,7 +141,7 @@ GEM
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
- thor (< 2.0, >= 0.14.6)
+ thor (>= 0.14.6, < 2.0)
raindrops (0.10.0)
rake (0.9.2.2)
rdoc (3.12)
@@ -164,7 +164,7 @@ GEM
sprockets (2.1.3)
hike (~> 1.2)
rack (~> 1.0)
- tilt (!= 1.3.0, ~> 1.1)
+ tilt (~> 1.1, != 1.3.0)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
@@ -175,7 +175,7 @@ GEM
tzinfo (0.3.33)
uglifier (1.3.0)
execjs (>= 0.3.0)
- multi_json (>= 1.0.2, ~> 1.0)
+ multi_json (~> 1.0, >= 1.0.2)
Unicorn (4.3.1)
kgio (~> 2.6)
rack
この変更は、マスターから離れた名前付きブランチにプッシュされました。この変更にどのように対処する必要がありますか?
大声で考える:GitHubでプルリクエストをマージしますか?最初はプルリクエストなしでアップストリームからプルするだけですか?特定のbundleコマンドを実行して、他の共同編集者のGemfile.lock
と同期しますか?他のコラボレーターが別の方法で実行して、gemを更新しないようにすることができますか(既存のGemfile.lock
で指定されたgemをダウンロードするためだけに)?この状況に関するベストプラクティスは何ですか?
Gemfile.lock shouldバージョン管理されている必要があります。変更をコミットする必要があります。誰か(信頼できる人)がそれを更新したら、bundle install
を実行して、現在Gemfile.lockにロックされているgemをインストールする必要があります。
bundle install
を実行するだけでは、既存のGemfile.lockは更新されません。これを行うには、bundle update
を実行する必要があります。
とはいえ、Gemfile.lockのバージョンに実際の変更はありません。変更されたのは、数行の引数の順序だけでした。これらの変更を安全にマージすることも、無視することもできます。結果のGemfile.lockは(機能的に)同一になります。