ฉันใช้ตัวรวมเครื่องเพื่อจัดการการพึ่งพาในแอพของฉัน
gem 'gem-name', :git => 'path/to/my/gem.git'
หากต้องการอัปเดตอัญมณีนี้ฉันจะใช้งานbundle update
แต่ยังอัปเดตอัญมณีทั้งหมดที่กล่าวถึงใน Gemfile ดังนั้นคำสั่งให้อัพเดตอัญมณีเฉพาะหนึ่งอันคืออะไร?
ฉันใช้ตัวรวมเครื่องเพื่อจัดการการพึ่งพาในแอพของฉัน
gem 'gem-name', :git => 'path/to/my/gem.git'
หากต้องการอัปเดตอัญมณีนี้ฉันจะใช้งานbundle update
แต่ยังอัปเดตอัญมณีทั้งหมดที่กล่าวถึงใน Gemfile ดังนั้นคำสั่งให้อัพเดตอัญมณีเฉพาะหนึ่งอันคืออะไร?
คำตอบ:
ที่นี่คุณจะพบคำอธิบายที่ดีเกี่ยวกับความแตกต่างระหว่าง
อัปเดตทั้งอัญมณีและการอ้างอิง:
bundle update gem-name
หรือ
อัปเดตอัญมณีโดยเฉพาะ:
bundle update --source gem-name
พร้อมกับตัวอย่างที่ดีของผลข้างเคียงที่อาจเกิดขึ้นได้
ในฐานะที่เป็นคำตอบ @ ทิมบอกว่าเป็นของ Bundler 1.14 bundle update --conservative gem-name
วิธีอย่างเป็นทางการได้รับการสนับสนุนในการนี้จะมี
วิธีการทำเช่นนี้คือการเรียกใช้คำสั่งต่อไปนี้:
bundle update --source gem-name
ปรากฏว่ามีบันเดิลเวอร์ชั่นใหม่กว่า (> = 1.14) คือ:
bundle update --conservative gem-name
bundle update gem-name [--major|--patch|--minor]
นอกจากนี้ยังใช้งานได้สำหรับการอ้างอิง
--major
, --minor
และ, --patch
จะอัปเกรดเป็นรุ่นล่าสุดโดยอัตโนมัติ
ฉันใช้bundle update --source
ตัวเองมานาน แต่มีบางสถานการณ์ที่มันใช้ไม่ได้ โชคดีที่มีอัญมณีที่เรียกว่าbundler-patch
มีเป้าหมายในการแก้ไขข้อบกพร่องนี้
ฉันยังเขียนโพสต์บล็อกสั้น ๆเกี่ยวกับวิธีการใช้bundler-patch
และสาเหตุที่bundle update --source
ทำงานไม่สม่ำเสมอ นอกจากนี้อย่าลืมตรวจสอบโพสต์โดย chrismo ที่อธิบายในรายละเอียดที่ดีว่า--source
ตัวเลือกทำอะไร
bundler update --source gem-name
จะอัปเดตแฮชการแก้ไขใน Gemfile.lock ซึ่งคุณสามารถเปรียบเทียบกับแฮชการคอมมิชชันล่าสุดของสาขา git นั้น (โดยค่าเริ่มต้น)
GIT
remote: git@github.com:organization/repo-name.git
revision: c810f4a29547b60ca8106b7a6b9a9532c392c954
สามารถพบได้ที่github.com/organization/repo-name/commits/c810f4a2
(ฉันใช้ชวเลข 8 ตัวอักษรกระทำแฮสำหรับ url)