Ich verwende Bundler, um Abhängigkeiten in meiner Rails App zu verwalten, und ich habe ein Juwel in einem Git-Repository wie folgt enthalten:
gem 'gem-name', :git => 'path/to/my/gem.git'
Um dieses Juwel zu aktualisieren, führe ich bundle update
aktualisiert aber auch alle in Gemfile genannten Edelsteine. Also, was ist der Befehl, um nur einen bestimmten Edelstein zu aktualisieren?
hier Hier finden Sie eine gute Erklärung für den Unterschied zwischen
Aktualisiere sowohl Juwel als auch Abhängigkeiten:
bundle update gem-name
oder
Aktualisiere exklusiv den Edelstein:
bundle update --source gem-name
zusammen mit einigen schönen Beispielen möglicher Nebenwirkungen.
Wie @ Tims Antwort besagt, ist ab Bundler 1.14 der offiziell unterstützte Weg dorthin mit bundle update --conservative gem-name
.
Um dies zu tun, führen Sie den folgenden Befehl aus:
bundle update --source gem-name
Sie müssen lediglich den Edelsteinnamen in der Befehlszeile angeben:
bundle update gem-name
Es scheint, dass es mit neueren Versionen von Bundler (> = 1.14):
bundle update --conservative gem-name
bundle update gem-name [--major|--patch|--minor]
Dies funktioniert auch für Abhängigkeiten.
Ich habe bundle update --source
Ich selbst seit langer Zeit, aber es gibt Szenarien, in denen es nicht funktioniert. Zum Glück gibt es einen Edelstein namens bundler-patch
welches das Ziel hat, dieses Manko zu beheben.
Ich schrieb auch ein kurzes Blogpost über die Verwendung von bundler-patch
und warum bundle update --source
funktioniert nicht konsequent. Schauen Sie sich auch einen Beitrag von chrismo an, der ausführlich erklärt, was das --source
Option tut.
bundler update --source gem-name
aktualisiert den Revisions-Hash in Gemfile.lock, den Sie mit dem letzten Commit-Hash dieses Git-Zweigs vergleichen können (standardmäßig master).
GIT remote: [email protected]:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954
finden Sie unter github.com/organization/repo-name/commits/c810f4a2
(Ich habe einen 8-stelligen Commit-Hash für die URL verwendet.)