Welche Strategien haben die Leute, um Gemfile.lock-Konflikte beim Rebasing in Git zu lösen?
Ich muss dies in einem neueren Projekt häufig tun, und es ist nicht nur mühsam, es ist auch nicht immer klar, wie die Zusammenführung durchgeführt wird.
Welche Strategien haben die Leute, um Gemfile.lock-Konflikte beim Rebasing in Git zu lösen?
Ich muss dies in einem neueren Projekt häufig tun, und es ist nicht nur mühsam, es ist auch nicht immer klar, wie die Zusammenführung durchgeführt wird.
VonC
Sie könnten es bei jeder Zusammenführung neu sperren, durch a Treiber zusammenführen (die ich normalerweise verwende, um während einer Zusammenführung immer die lokale Version einer Datei beizubehalten).
Sehen “Gemfile.lock automatisch zusammenführen” aus Will Leinweber:
Alles, was Sie tun müssen, ist laufen
(veraltet in Rail3)bundle lock
bundle install
bekommenbundler
zum erneuten Sperren, fügen Sie das hinzu und setzen Sie Ihre Rebase fort.Zuerst ist dein
~/.gitconfig
Datei.
Hier werden wir ihm eine neue Zusammenführungsstrategie geben, eine, die nur die Gemfile neu sperrt.
Fügen Sie dies am Ende hinzu:
[merge "gemfilelock"]
name = relocks the gemfile.lock
driver = bundle install
Als nächstes müssen wir git anweisen, unsere neue Strategie für zu verwenden
Gemfile.lock
und das machen wir mitgitattributes
.
Das kannst du entweder eintragenproject/.git/info/attributes
oderproject/.gitattributes
.
Gemfile.lock merge=gemfilelock
laut Bundle ist Bundlelock obsolet. stackoverflow.com/questions/4410116/… gibt es eine aktualisierte Lösung dafür???
– rickypai
13. Januar 2013 um 22:57 Uhr
@rickypai ja, ich habe die folgende Antwort aktualisiert bitfission.com/blog/2010/07/…: bundle install
ist das neue Schloss.
– VonC
14. Januar 2013 um 7:42 Uhr
Verwenden git log Gemfile.lock
um den Hash eines vorherigen Commits zu finden. Dann renne git checkout abcde Gemfile.lock
zurück zu kehren. Dein bundle install
Befehl sollte danach funktionieren.
Sie können dieses Skript verwenden, um automatisch ein Git-Repository einzurichten, um die erwähnte Merge-Auflösungsstrategie zu verwenden: https://gist.github.com/itspriddle/5548930
Alternativ können Sie die Verbindung von tpope verwenden, um dies automatisch zu tun (und Datenbankmigrationen auszuführen), nachdem Git Pulls ausgeführt wurden: https://github.com/tpope/hookup
Dieses Problem ist mir passiert, weil ich verwirrt war, in welchem Zweig ich war. Die Lösung bestand darin, mir auf die Stirn zu schlagen und zum richtigen Zweig zurückzukehren, und die Konfliktkonfliktfehler Gemfile.lock verschwanden.
– Eric Leschinski
15. Juni 2016 um 13:15 Uhr