วิธีการเลือกเชอร์รี่อย่างง่ายดายด้วย magit?


40

ฉันใช้ magit มาสองสามเดือนแล้วและฉันชอบมันมาก แต่สิ่งหนึ่งที่ฉันยังทำในอาคารผู้โดยสารคือการเก็บเชอร์รี่

วิธีง่ายๆในการทำเช่นนี้คืออะไร?

คำตอบ:


31

ทุกที่ที่คุณเห็นการกระทำในบัฟเฟอร์ Magit คุณสามารถเชอร์รี่รับA Aได้โดยจุดมีแล้วพิมพ์ย้าย คุณยังสามารถเชอร์รี่เลือกกระทำหลายครั้ง: A Aเพียงแค่เลือกกระทำโดยใช้ภูมิภาคและกด


45

รุ่น Magit <= 1.4.2

มันค่อนข้างง่าย:

  1. ป้อนภาพรวม magit-status
  2. ตรวจสอบ (กดb b) สาขาที่คุณต้องการรับเชอร์รี่
  3. ทำช่วงบันทึก (กดl r l) เพื่อค้นหาการกระทำที่คุณต้องการเลือกรับเชอร์รี่ ที่นี่คุณเลือก 2 สาขาที่คุณต้องการเปรียบเทียบ
  4. เลื่อนไปที่การส่งข้อความที่คุณต้องการเลือกและกดAเพื่อใช้การเปลี่ยนแปลงและนำไปใช้กับข้อความการส่ง หากคุณกดaมันจะไม่แสดงการเปลี่ยนแปลง แต่ใช้กับมันเท่านั้น

คุณไม่จำเป็นต้องทำช่วงบันทึกการรับเชอร์รี่ เมื่อใดก็ตามที่คุณเห็นบันทึกการกระทำคุณสามารถกดAเพื่อเลือกเชอร์รี่

รุ่น Magit> = 2.1.0

หลังจากอัพเกรด magit เป็น 2.1 เวิร์กโฟลว์จะแตกต่างกัน สำหรับทั้งสองวิธีคุณต้องเริ่มต้นmagit-statusก่อน

วิธี A : Cherry Pick เปลี่ยนจากสาขาอื่นทีละหนึ่ง

  1. กดlและoเพื่อรับรายการสาขาอื่น
  2. เลือกสาขาที่คุณต้องการเลือกจากเชอร์รี่
  3. ย้ายไปที่การคอมมิทที่คุณต้องการแล้วกดAตามด้วยAอีกครั้ง
  4. บรรทัดสถานะจะแสดงให้คุณทราบว่าคุณเลือกสิ่งใด

    เช่น feature/ABC~4

    กดEnterเพื่อใช้การเปลี่ยนแปลง

วิธี B : Cherry รับการเปลี่ยนแปลงทั้งหมดจากสาขาอื่น

  1. กดAเพื่อเลือกโหมดเลือกเชอร์รี่
  2. กดAอีกครั้งเพื่อใช้และคอมมิชชันการเปลี่ยนแปลง กดaเพื่อใช้การเปลี่ยนแปลงเท่านั้น
  3. Enterเลือกสาขาการเปลี่ยนแปลงเชอร์รี่เลือกจากและประชาสัมพันธ์

ฉันชอบวิธี A เป็นการส่วนตัวมากขึ้นเพราะคุณสามารถจัดการกับความขัดแย้งได้ดี


8

ฉันไม่ได้ใช้การเลือกเชอร์รี่ แต่การกดปุ่ม?ในการแสดงmagit-status y: Cherryสิ่งนี้จะรันคำสั่งmagit-cherryซึ่งช่วยให้คุณสามารถเลือกหัวและต้นน้ำ ดูเหมือนว่านี่คือสิ่งที่คุณต้องการ

คุณสามารถพิมพ์C-h r d m Magit RETเพื่ออ่านคู่มือ Magit คุณสามารถใช้C-s cherryและกดซ้ำC-sเพื่อค้นหาผ่านคู่มือ ดูเหมือนว่าข้อมูลอยู่ในส่วนที่ 23:

หนึ่งในความสะดวกสบายของgitมันคือมันสามารถบอกคุณได้ว่าการกระทำที่ได้รับการผสานต้นน้ำ แต่ไม่ใช่ในประเทศและในทางกลับกัน คำสั่งย่อยของ Git สำหรับสิ่งนี้คือcherry(เพื่อไม่ให้สับสนกับcherry-pick) Magit มีการรองรับสิ่งนี้โดยการเรียกใช้magit-cherryซึ่งจะถูกผูกไว้กับyค่าเริ่มต้น

Magit จะถามคุณก่อนถึงการแก้ไขอัปสตรีม (ซึ่งเป็นค่าเริ่มต้นสำหรับสาขาระยะไกลที่ถูกติดตามในปัจจุบันหากมี) และการแก้ไขใหญ่ (ซึ่งเป็นค่าเริ่มต้นสำหรับสาขาปัจจุบัน) เพื่อใช้ในการเปรียบเทียบ จากนั้นคุณจะเห็นบัฟเฟอร์ใหม่ซึ่งการคอมมิททั้งหมดถูกแสดงด้วยเครื่องหมายทิศทางการแก้ไขและบรรทัดแรกของข้อความคอมมิท เครื่องหมายทิศทางทั้ง+แสดงให้เห็นการกระทำที่อยู่ในต้นน้ำ แต่ไม่ได้อยู่ในหัวหรือ-ซึ่งบ่งชี้ว่าการกระทำในปัจจุบันอยู่ในหัว แต่ไม่ได้อยู่ในต้นน้ำ

จากรายการนี้คุณสามารถใช้การเชื่อมโยงคีย์ปกติสำหรับการเก็บเชอร์รี่แต่ละรายการได้ ( aสำหรับการหยิบเชอร์รี่โดยไม่ต้องคอมมิทและA รวมและคอมมิทอัตโนมัติ) บัฟเฟอร์จะถูกรีเฟรชโดยอัตโนมัติหลังจากแต่ละเชอร์รี่เลือก


1
เมื่ออัญเชิญคู่มือ Magit คุณสามารถบันทึกจังหวะสำคัญโดยทำแทนC-h i C-h r dสิ่งนี้จะนำคุณไปสู่ระดับสูงสุดของข้อมูลโดยตรง
itsjeyd

1
@itsjeyd Nahh C-h iจะนำคุณไปยังไฟล์ข้อมูลสุดท้ายที่คุณเปิดดังนั้นถ้าฉันกดC-h i mฉันอาจจะดูเมนูของบทใน SICP แทนเมนูทุกอย่าง กดปุ่มdหลังC-h iหรือจะให้แน่ใจว่าคุณจะอยู่ในข้อมูลไดเรกทอรีเมื่อก่อนที่จะกดC-h r m
พี่เลี้ยง

นั่นเป็นเคล็ดลับที่ดีฉันไม่รู้เกี่ยวกับเรื่องนั้น! นอกจากนี้ทั้งหมดนอกหัวข้อ: รุ่นข้อมูลของ SICP ?! ฉันจะรับสำเนาได้ที่ไหน :)
itsjeyd

@itsjeyd ฉันเก็บไว้ใน Dropbox ของฉันฉันคิดว่าฉันได้รับจากที่นี่: github.com/webframp/sicp-info
พี่เลี้ยง

1
ขอบคุณ! ฉันตรวจสอบ MELPA แล้วปรากฎว่ามีแพ็คเกจที่สร้างขึ้นจากพื้นที่เก็บข้อมูลนั้น ดังนั้นการติดตั้งรุ่นข้อมูลของ SICP จะเป็นเรื่องง่ายเหมือนM-x package-install RET sicp RET:)
itsjeyd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.