วิธีการรวมกลุ่มของท้องถิ่นเพื่อผลักดันเดียวใน IDEA?


87

ใน IDEA ฉันพยายามผลักดันการกระทำบางอย่าง

ฉันมีข้อกำหนดว่าบนเซิร์ฟเวอร์ระยะไกลดูเหมือนว่าการกระทำเพียงครั้งเดียว

ฉันคลิกเพื่อผลักดันและดูหน้าต่างต่อไปนี้ ใส่คำอธิบายภาพที่นี่

ฉันคาดว่าจะเห็นช่องทำเครื่องหมายสควอชที่นี่ แต่ไม่เห็น

โปรดช่วยฉันด้วย


2
ไม่สามารถให้คำแนะนำ IDEA ได้ แต่ squashing เป็นส่วนหนึ่งของ rebase แบบโต้ตอบหรือการผสานไม่ใช่การคอมมิต ลองมองหาที่นั่น
musiKk

คำตอบ:


117

คุณสามารถทำได้โดยใช้ rebase ไปที่VCS / Git / Rebase จากนั้นเลือกตัวเลือกแบบโต้ตอบ จะแสดงรายการคอมมิตซึ่งคุณสามารถเลือกได้ว่าต้องการทำสควอช

หลังจากที่คุณกดStart rebasingระบบจะแจ้งให้คุณส่งข้อความคอมมิตสำหรับคอมมิตที่ถูกบีบอัด หลังจากนั้นคุณสามารถผลักดันคอมมิตที่ถูกบีบโดยใช้กล่องโต้ตอบแบบพุช

กล่องโต้ตอบสควอช

ข้อมูลเพิ่มเติมเกี่ยวกับ rebase ใน IntelliJ เป็นที่นี่


9
นอกจากนี้การอ่านบทความGit Tools - Rewriting History นี้อาจเป็นประโยชน์เพื่อ ให้ทราบถึงสิ่งที่ต้องป้อนใน "ช่องไปยังช่อง" ของกล่องโต้ตอบ "Rebase branch": e..g HEAD~3สามารถใช้เพื่อเลือกการคอมมิต3 ครั้งสุดท้าย
TmTron

เมื่อคุณรวบรวมความมุ่งมั่นเข้าด้วยกันรายละเอียดส่วนบุคคลของการกระทำแต่ละครั้งจะสูญหายไปหรือไม่? มันจะดูเหมือนการกระทำที่ยิ่งใหญ่เพียงครั้งเดียวหรือไม่?
ycomp

@ycomp ใช่ rebase แบบโต้ตอบจะเขียนประวัติใหม่ดังนั้นการกระทำที่ถูกบีบอัดแต่ละครั้งจะสูญหายไปและมีการสร้างซิงเกิ้ลใหม่แทน
Bohuslav Burghardt

ขอบคุณช่วยเลิกทำสควอชได้ไหม
ycomp

@ycomp ฉันไม่เคยทำแบบนั้นมาก่อน แต่มันควรจะเป็นไปได้ โปรดดูโพสต์ SO ต่อไปนี้: stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
Bohuslav Burghardt

36

มีวิธีใหม่:

การควบคุมเวอร์ชัน -> บันทึก -> คลิกขวาที่คอมมิต -> Interactively rebase from hereจากนั้นคุณสามารถเลือก / สควอชส่วนที่เหลือของคอมมิต


1
ปัญหาของแนวทางนี้คือไม่มีวิธีการเลือก "สควอช" สำหรับการคอมมิตหลาย ๆ ครั้งและการทำทีละครั้งก็น่าเบื่อ
Dmitry Serdiuk

4
@DmitrySerdiuk คุณสามารถเลื่อนคลิกเพื่อเลือกคอมมิตที่คุณต้องการสควอชจากนั้นคลิกขวา -> เลือกสควอช
Aarjav

1
@Aarjav โอ้พระเจ้านี่คือสิ่งที่ฉันคิดว่ามันหายไป! ไม่มีคำแนะนำเกี่ยวกับเมนูคลิกขวาในกล่องโต้ตอบ
o_nix

21

สำหรับฉันวิธีที่ง่ายที่สุดกับ intellij คือ:

  • ไปที่Logแท็บแล้วเลือกคอมมิตที่คุณต้องการสควอช
  • คลิกขวาและเลือก Reset Branch to this commit
  • เลือกmixinตัวเลือกเพื่อป้องกันการเปลี่ยนแปลงของคุณจากการกระทำ
  • ยอมรับการเปลี่ยนแปลงของคุณและอย่าลืมตรวจสอบAmend commitตัวเลือก

1
นี่เป็นวิธีที่ง่ายที่สุดและฉันคิดว่ามันเป็นวิธีที่เครียดและเกิดข้อผิดพลาดน้อยที่สุด
davrog10

2
ฉันขอแนะนำว่าในขั้นตอนที่ 3 ควรเลือกSoftตัวเลือกแทนที่จะMixedให้การเปลี่ยนแปลงทั้งหมดถูกจัดเตรียมไว้แล้วสำหรับการคอมมิต
Provisota
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.