git add --interactive“ ก้อนที่แก้ไขของคุณใช้ไม่ได้”


85

ฉันกำลังพยายามใช้git add --interactiveเพื่อเลือกเพิ่มการเปลี่ยนแปลงบางอย่างในดัชนีของฉัน แต่ฉันได้รับข้อความ "ก้อนที่แก้ไขของคุณใช้ไม่ได้อย่างต่อเนื่องแก้ไขอีกครั้ง ... " ฉันได้รับข้อความนี้แม้ว่าฉันจะเลือกตัวเลือก e และบันทึก / ปิดโปรแกรมแก้ไขทันที กล่าวอีกนัยหนึ่งโดยไม่ต้องแก้ไขก้อนใหญ่เลยแพตช์จะไม่ใช้

นี่คือตัวอย่างที่แน่นอนที่ฉันใช้ (ฉันพยายามรวบรวมตัวอย่างเล็ก ๆ ):

ไฟล์ต้นฉบับ:

first change
second change off branch
third change off branch
second change
third change
fourth change

ไฟล์ใหม่:

Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1

ฉันกำลังพยายามแสดงวิธีใช้git add --interactiveเพื่อเพิ่มบรรทัด "bug fix 1" ในดัชนีเท่านั้น เรียกใช้การเพิ่มแบบโต้ตอบในไฟล์ฉันเลือกโหมดแก้ไข มันนำเสนอฉันด้วย

diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
 first change
 second change off branch
 third change off branch
 second change
 third change
 fourth change
+bug fix 1
+change supporting feature 1

ฉันตอบกลับด้วยการแบ่งตามด้วย "ไม่" เพื่อใช้ก้อนแรก ก้อนที่สองฉันพยายามแก้ไข ตอนแรกฉันพยายามลบบรรทัดล่างสุด แต่ไม่ได้ผล การปล่อยให้ก้อนใหญ่อยู่คนเดียวก็ไม่ได้ผลเช่นกันและฉันก็คิดไม่ออกว่าทำไม


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

1
ตรวจสอบการสิ้นสุดบรรทัด (LF, CRLF) ด้วยในกรณีของฉันมันไม่ได้ใช้กับ LF หนึ่งตัวแทนที่จะเป็น CRLF!
Alberto Rivelli

คำตอบ:


37

สำหรับตัวอย่างนี้คุณต้องปรับแต่งหมายเลขบรรทัดในกลุ่ม เปลี่ยนบรรทัด:

@@ -1,6 +2,8 @@

เพื่อให้อ่านแทน:

@@ -2,7 +2,8 @@

16
หลังจากขุดดูฉันพบว่าบรรทัดเหล่านั้นแสดง "from-file range" และ "to-file range" ฉันไม่ค่อยเข้าใจตรรกะเบื้องหลังการเปลี่ยน 1 เป็น 2 ฉันลองแล้วและใช้ได้ผล แต่ฉันไม่เข้าใจว่าทำไม "จากช่วงไฟล์" จึงเปลี่ยนไป ไฟล์ต้นฉบับเหมือนกันไม่ว่าฉันจะใช้แพทช์ทั้งหมดหรือแค่ไฟล์ที่แก้ไข คุณช่วยอธิบายเพิ่มเติมได้หรือไม่หรือชี้ให้ฉันดูการอ้างอิงที่สืบเชื้อสายมาจากรูปแบบ unified diff ฉันหาไม่สำเร็จ
Josh

9
@ Josh: stackoverflow.com/questions/2529441/…ช่วยได้แม้ว่าฉันจะไม่ได้รับรูปแบบ Unified ทั้งหมด @ วิลเลียม +1
VonC

5
@ จอช: ในการมองดูเหมือนว่ามันอาจจะเป็นจุดบกพร่อง หลังจากที่คุณแก้ไข hunk แล้วคอมไพล์จะพยายามตรวจสอบแพตช์โดยตรวจสอบว่าhunks ทั้งหมดจะใช้งานได้ (อาจมากเกินไป) น่าเสียดายที่ในกรณีนี้นั่นหมายความว่ากำลังตรวจสอบ hunk ก่อนหน้า (ซึ่งคุณไม่ได้สมัคร) และมีการทับซ้อนกันซึ่งทำให้ git ใช้ - ตรวจสอบล้มเหลว ฉันไม่รู้วิธีแก้ปัญหาที่สวยงาม git อาจทำในสิ่งที่ถูกต้องโดยระมัดระวังที่นี่มากเกินไป
William Pursell

22
ข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนหมายเลขบรรทัดโปรด? ทำไมเราต้องทำเช่นนั้น? แล้วยังไง? ตัวเลขแต่ละตัวหมายถึงอะไร?
บิล

4
@WilliamPursell รุ่นไหนของ git? ฉันเปลี่ยนไปใช้คอมพิวเตอร์เครื่องใหม่และเรียกใช้ git v2.17.0 และในทันใดนั้นการแก้ไขแพตช์ของฉันก็ไม่สามารถใช้ได้อีกต่อไป
Dennis

105

เป็นแบบนี้ในโพสต์ git-addไหม

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

  • ช่องว่าง (หมายถึงเส้นที่ไม่เปลี่ยนแปลง)
  • -แสดงให้เห็นว่าเส้นจะถูกลบออก
  • หรือ+ระบุว่ามีการเพิ่มบรรทัด

ไม่มีอะไรอีกแล้ว. ต้องเป็นช่องว่าง a - หรือ + สิ่งอื่นใดและคุณจะได้รับข้อผิดพลาด
(ไม่มีอักขระสำหรับบรรทัดที่เปลี่ยนแปลงเนื่องจากสิ่งเหล่านี้ได้รับการจัดการโดยการลบบรรทัดเก่าและเพิ่มบรรทัดที่เปลี่ยนแปลงเป็นใหม่)

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

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

สิ่งหนึ่งที่ทำให้ฉันสะดุดบ่อยคือฉันลืมการเยื้องอักขระหนึ่งตัว
ฉันจะทำเครื่องหมายบรรทัดด้วย - ที่จะลบออก แต่ในโปรแกรมแก้ไขข้อความส่วนใหญ่ที่แทรก a -จะไม่เขียนทับช่องว่างที่มีอยู่ก่อนหน้านี้ ซึ่งหมายความว่าคุณกำลังเพิ่มพื้นที่เพิ่มเติมเพื่อให้ทั้งบรรทัดซึ่งจะหมายถึงขั้นตอนวิธีการต่างไม่สามารถหา / ตรงกับสายที่อยู่ในไฟล์ต้นฉบับซึ่งจะหมายถึง Git จะตะโกนใส่หน้าคุณ

สิ่งอื่น ๆ คือความแตกต่างยังคงต้องทำให้รู้สึก "Sense" หมายความว่าสามารถทาได้อย่างหมดจด วิธีที่คุณสร้างความแตกต่างที่สมเหตุสมผลดูเหมือนจะเป็นงานศิลปะด้านมืดเล็กน้อย (อย่างน้อยก็สำหรับฉันในตอนนี้) แต่คุณควรจำไว้เสมอว่าไฟล์ต้นฉบับมีลักษณะอย่างไรจากนั้นจึงวางแผน -s และ + s ของคุณตามนั้น หากคุณแก้ไข hunks ของคุณบ่อยพอคุณจะแฮงค์ได้ในที่สุด

ดูเพิ่มเติมนี้กระทำใน -p

คำตอบของOrtomala Lokniหมายถึงบล็อกโพสต์ของJoaquínWindmüller " เลือกการเปลี่ยนแปลงที่เลือกเพื่อกระทำกับ git (หรือ Imma แก้ไข hunk ของคุณ) "

แทนที่จะนับเส้นสิ่งที่ Git ต้องการทำคือการรวมกลุ่มที่ทับซ้อนกัน (เมื่อมีการแก้ไข) ก่อนที่จะใช้ก้อนที่แก้ไขดังกล่าว
ที่กล่าวถึงในช่วงกลางปี ​​2018และจะหลีกเลี่ยงสถานการณ์เช่น:

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


5
ขอบคุณสำหรับลิงค์ แต่ฉันได้เห็นสิ่งนี้แล้ว ฉันไม่ได้เพิ่ม / ออกจากบรรทัดเพิ่มเติม ปัญหาอยู่ในหมายเลขบรรทัด แต่ฉันยังไม่เข้าใจการแก้ไข
Josh

9
ฉันไม่ได้แทนที่ '-' ที่ถูกลบด้วยช่องว่าง - จึงทำให้การเยื้องขึ้น ขอบคุณ!!
pedorro

ตรวจสอบให้แน่ใจว่าคุณไม่เข้าใจผิดในส่วนของพื้นที่ว่าง ฉันคิดว่าเส้นที่ไม่เปลี่ยนแปลงทั้งหมดควรเป็นเพียงเส้นที่มีสีดำแทนที่จะเป็นเพียงอักขระเยื้อง ... มีเวลาหนึ่งชั่วโมงในการ "แก้ไขก้อนใหญ่ใช้ไม่ได้" จนกว่าฉันจะเข้าใจว่าทำไม: - /
oligofren

@oligofren ฉันไม่แน่ใจว่าฉันเข้าใจคุณ: คุณต้องทำอะไรเพื่อให้ก้อนที่แก้ไขของคุณใช้?
VonC

1
@VonC: ตอนแรกฉันคิดว่าฉันควรเปลี่ยน- foo เป็น `(แค่ช่องว่างไม่ใช่" ช่องว่างและทั้งบรรทัด ") ฉันใช้เวลาสักพักกว่าจะเข้าใจว่ามันควรจะเป็น "foo"
oligofren

48

แน่นอนว่าฉันมาสาย แต่อย่างไรก็ตามอยากจะพูดถึงบันทึกว่าปัญหานี้ได้รับการพูดถึงเมื่อปีที่แล้วในรายชื่ออีเมลคอมไพล์และดูเหมือนว่าจะไม่มีการเปลี่ยนแปลงมากนัก

ปัญหานี้เกิดจากการแยกและพยายามแก้ไขกลุ่มก้อนเดียวกัน การวิเคราะห์ตามที่เจฟฟ์คิงโพสต์ไว้ในตอนแรกปัญหาพื้นฐานคือ:

หืม. ตกลงฉันเข้าใจ การตรวจสอบ "ใช้ความแตกต่างนี้" ฟีดทั้งสองส่วนของแพตช์แยกเพื่อใช้คอมไพล์ แต่แน่นอนว่าส่วนที่สองจะไม่ถูกนำไปใช้อย่างถูกต้องเนื่องจากบริบททับซ้อนกับส่วนแรก แต่ไม่ได้นำมาพิจารณา

ทำการตรวจสอบโดยใช้เพียงโปรแกรมแก้ไขที่แก้ไขแล้วจะได้ผล แต่นั่นไม่ได้คำนึงถึงว่าโปรแกรมแก้ไขที่แก้ไขของคุณอาจไม่สามารถใช้งานได้ในระยะยาวขึ้นอยู่กับว่าคุณยอมรับอีกครึ่งหนึ่งของแพตช์แยกหรือไม่ และเรายังไม่สามารถทราบได้เนื่องจากผู้ใช้อาจไม่ได้แจ้งให้เราทราบ (อาจข้ามครึ่งแรกไปแล้วกลับมาดูภายหลังหลังจากขั้นตอนแก้ไข)

เจฟฟ์สรุปโพสต์ของเขาด้วยวิธีแก้ปัญหาเชิงปฏิบัติที่ประสบความสำเร็จเสมอดังนั้นจึงขอแนะนำ:

โดยทั่วไปแล้วฉันคิดว่าการแยกและแก้ไขก้อนเนื้อเดียวกันเป็นอันตรายโดยเนื้อแท้และจะนำไปสู่ปัญหาประเภทนี้ และเนื่องจากการแก้ไขมีส่วนเหนือของฟังก์ชันฉันคิดว่าคุณควรแก้ไขและอนุญาตให้ใช้ส่วนแรกของ hunk หรือไม่ขึ้นอยู่กับความต้องการของคุณ

การเลือกแก้ไขเฉพาะกลุ่มที่ไม่ได้แยกก่อนหน้านี้คุณจะไม่ต้องจัดการกับหมายเลขบรรทัด


6
ขอบคุณนี่เป็นวิธีที่ง่ายกว่าการเล่นตลกกับหมายเลขบรรทัด
michiakig

3
นี่คือปัญหาของฉัน ต้องการให้ก้อนใหญ่ของฉันเล็กลง ดำเนินการแยกในการโต้ตอบ การแยกไม่ใช่สิ่งที่ฉันต้องการดังนั้นฉันจึงตัดสินใจลองแก้ไขด้วยตนเอง รับข้อผิดพลาด เริ่มต้นใหม่ทำงานก่อนลอง
Kyle

นี่คือคำตอบที่ดีที่สุดในกระทู้นี้ ห้ามแยกและแก้ไข เพียงแค่แก้ไข
Dr_Zaszuś

ในกรณีของฉันปัญหาเพิ่มเติมมาจากการสิ้นสุดบรรทัดของ Windows ที่แสดง^Mในไฟล์ diff เมื่อฉันบันทึกไฟล์ด้วยตอนจบ CR แล้วแพตช์แก้ไขแบบโต้ตอบก็ผ่านไป!
Dr_Zaszuś

ขอบคุณนี่เป็นเคล็ดลับสำหรับฉัน ฉันต้องทำงานเป็นชิ้นใหญ่ดังนั้นฉันจึงแยกมันออกและทุกอย่างก็พังทลาย การไม่แยกจากกันทำให้ทุกอย่างทำงานได้ดี
Matthias Fischer

16

เมื่อคุณไม่ต้องการลบบรรทัดที่จัดฉากสำหรับการลบเช่นเดียวกับใน

 first line
-second line
 third line

ที่คุณต้องการเก็บบรรทัดที่สองตรวจสอบให้แน่ใจว่าคุณแทนที่-ด้วยช่องว่างแทนที่จะลบทั้งบรรทัด (เช่นเดียวกับที่คุณจะกำจัดบรรทัดที่เพิ่ม) Git จะใช้บรรทัดสำหรับบริบท


1
สิ่งนี้ไม่ชัดเจนสำหรับฉันฉันคิดว่า Git กำลังบอกให้ฉันทำให้บรรทัดเป็นช่องว่างเดียว
JackHasaKeyboard

15

สิ่งสำคัญคือต้องแก้ไขส่วนหัวของ hunk ให้ถูกต้องด้วย (เช่น@@ -1,6 +1,9 @@) Joaquin Windmuller เปิดเผยความลับของก้อนใหญ่ส่วนหัวของการแก้ไขในหนึ่งของโพสต์บล็อก

ความลับของการแก้ไข hunks

การแก้ไข hunks ในตอนแรกอาจทำให้สับสนในตอนแรกคำแนะนำที่คอมไพล์ช่วยคุณได้ แต่ไม่เพียงพอสำหรับการเริ่มต้น

# —||

# To remove ‘-’ lines, make them ’ ’ lines (context).

# To remove ‘+’ lines, delete them.

# Lines starting with # will be removed.

#

# If the patch applies cleanly, the edited hunk will immediately be

# marked for staging. If it does not apply cleanly, you will be given

# an opportunity to edit again. If all lines of the hunk are removed,

# then the edit is aborted and the hunk is left unchanged.

สูตรลับคือ…การนับเส้น:

  • หากคุณลบบรรทัดที่เริ่มต้นด้วย + แล้วลบหนึ่งไปนับบรรทัดใหม่ (หลักสุดท้ายของส่วนหัวก้อนใหญ่ของ)
  • หากคุณลบบรรทัดที่เริ่มต้นด้วย - แล้วเพิ่มหนึ่งไปยังนับบรรทัดใหม่ (หลักสุดท้ายของส่วนหัวก้อนใหญ่ของ)
  • อย่าลบบรรทัดอื่น ๆ (เส้นอ้างอิง)

สิ่งนี้จะช่วยให้คุณปรับเปลี่ยน hunks ได้อย่างรวดเร็วเพื่อเลือกชิ้นส่วนที่คุณต้องการ


1
มีวิธีแก้ไขส่วนหัว hunk โดยอัตโนมัติหรือกำหนดค่า git เพื่อกำหนดจำนวนบรรทัดที่เหมาะสมหรือไม่
Dennis

คุณสามารถเขียนสคริปต์โปรแกรมแก้ไขที่คุณชื่นชอบเพื่อทำให้สิ่งนี้เป็นอัตโนมัติ อาจมีปลั๊กอินสำหรับสิ่งนี้อยู่แล้ว แต่ขึ้นอยู่กับตัวแก้ไข
Ortomala Lokni

14

ฉันเพิ่งค้นพบจากการอ่านหัวข้อนี้ว่าจะแก้ไขด้วยตนเองอย่างไร

เคล็ดลับที่ฉันใช้คือถ้าฉันมีความแตกต่างเช่น:

+ Line to add
+ Line to add
+ Line I dont want to include
+ Line I dont want to include

เคล็ดลับคือการลบสองบรรทัดที่ฉันไม่ต้องการออกให้หมดทำให้ผลลัพธ์ที่ได้มีลักษณะเหมือน

+ Line to add
+ Line to add

แม้ว่าสิ่งนี้จะชัดเจนสำหรับคนส่วนใหญ่ แต่ก็ยังไม่ใช่สำหรับฉันจนถึงวันนี้และฉันคิดว่าฉันควรจะแบ่งปันประสบการณ์ของฉัน โปรดแจ้งให้ฉันทราบว่าวิธีนี้มีอันตรายหรือไม่


2
ขอบคุณไม่พอ! ฉันพยายามเปลี่ยน+เป็น a เป็น' 'เวลาอย่างน้อยหนึ่งชั่วโมง
ชิม

คุณรู้ไหมว่าความบ้าคลั่งกำลังทำสิ่งเดียวกันและคาดหวังผลลัพธ์ที่แตกต่างออกไป ฉันเคยพูดกับตัวเองเป็นเวลา 20 นาทีก่อนที่ฉันจะคิดว่าฉันต้องการลบ :)
solidak

นี่น่าจะเป็นคำตอบ ดีและเรียบง่ายขอบคุณ!
xPeaWhyTee

7

คุณสามารถแก้ไขหมายเลขบรรทัดได้ด้วยตนเองซึ่งมีประโยชน์อย่างแน่นอนในบางกรณี อย่างไรก็ตามคุณอาจหลีกเลี่ยงปัญหานี้ได้โดยไม่แยกก้อนออกก่อน

หากคุณเห็นว่าคุณอาจต้องแก้ไขบางอย่างในภายหลังในกลุ่มก้อนที่ Git ได้เลือกโดยอัตโนมัติทางที่ดีที่สุดคือแก้ไขกลุ่มก้อนทั้งหมดแทนที่จะแยกแบ่งครึ่งแบ่งครึ่งแล้วแก้ไขอีกครึ่งหนึ่ง Git จะทำงานได้ดีขึ้นในการหาข้อมูลนั้น


6

ฉันมาถึงคำถามนี้เพื่อค้นหาวิธีแก้ปัญหาเดียวกันและไม่สามารถหาวิธีเปลี่ยนหมายเลขบรรทัด (ตามที่แนะนำไว้ข้างต้น) ในกลุ่มก้อนเพื่อให้คอมไพล์ยอมรับในกรณีของฉัน ฉันพบวิธีที่ดีกว่ามากในการใช้git guiแม้ว่า คุณสามารถเลือกเส้นในส่วนต่างที่คุณต้องการแสดงจากนั้นคลิกขวาและเลือก "เส้นเวทีจากการคอมมิต" ฉันจำได้ว่าgit-colaมีฟังก์ชันเดียวกันด้วย


นี่น่าจะเป็นคำตอบจริงๆ git-colaดูเหมือนจะทำงานบน Linux, Windows และ MacOS
leeand00

5

ปัญหาเพิ่มเติมที่ฉันพบเมื่อฉันได้รับข้อผิดพลาดนี้คือการลงท้ายบรรทัดเปลี่ยนไปเมื่อฉันบันทึกไฟล์แก้ไข

ฉันใช้ Windows และใช้ Notepad สำหรับการแก้ไขของฉัน (บันทึกด้วยการลงท้ายบรรทัดของ Windows เท่านั้น) รหัสของฉันเขียนด้วย Notepad ++ และฉันตั้งค่าให้มีส่วนท้ายบรรทัดสไตล์ Unix / Linux

เมื่อฉันเปลี่ยนการตั้งค่าให้ Notepad ++ เป็นโปรแกรมแก้ไข git เริ่มต้นฉันสามารถทำการแก้ไข hunk ได้

git config --global core.editor "notepad++"

1
สิ่งนี้ได้ผลสำหรับฉัน แต่ฉันต้องการเส้นทางแบบเต็มไปยัง notepad ++ และต้องใช้เวลาสักครู่เพื่อให้ถูกต้อง: git config --global core.editor '"C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"' (ปรับสิ่งนี้ตามตำแหน่งที่ติดตั้ง notepad ++ บนพีซีของคุณ)
Annabel

1
ปัญหาเดียวกันสำหรับฉัน มันเป็น Notepad ที่ทำให้เกิดปัญหา เมื่อฉันเปลี่ยนโปรแกรมแก้ไขเริ่มต้นเป็น Notepad ++ ทุกอย่างก็เริ่มทำงานอีกครั้ง
Johnny Oshika

4

เหตุผลหนึ่งที่ทำให้ข้อความ "ไม่ใช้การแก้ไขของคุณใช้ไม่ได้" แปลก ๆ (น่าจะมาพร้อมกับ "error: patch fragment ที่ไม่มีส่วนหัวที่บรรทัด ... ") อาจเป็นตัวแก้ไขของคุณหากมีการกำหนดค่าให้ตัดช่องว่างต่อท้าย สิ่งนี้จะทำให้เกิดปัญหาใหญ่อย่างเห็นได้ชัดเนื่องจากแพตช์เข้ารหัสบรรทัดว่างเป็นบรรทัดที่มีช่องว่างหนึ่งช่องที่มีบรรทัดว่างจะไม่สามารถใช้งานได้หากบันทึกด้วยโปรแกรมแก้ไขดังกล่าว ดังนั้นในผลที่ hunk ใด ๆ ที่มีบรรทัดว่างที่ไม่มีการเปลี่ยนแปลงใด ๆ จะไม่สามารถใช้งานได้หลังจากการแก้ไขหากเปิดการเว้นช่องว่างต่อท้าย


0

FYI ฉันได้รับข้อผิดพลาดเล็กน้อยที่เกี่ยวข้องกัน ... เมื่อฉันเพิ่มโปรแกรมแก้ไขตามคำแนะนำที่แนะนำด้านบน ... อย่างไรก็ตามมันไม่แสดงข้อผิดพลาด ฉันได้รับมันซ้ำแล้วซ้ำเล่าเพื่อขอให้ฉันขึ้นเวทีกลุ่มก้อนเดิม ... ฉันสังเกตเห็นว่าฉันใช้ Vim 7.4 เวอร์ชันเก่ากว่า ... ฉันอัปเกรดเป็นกลุ่มและใช้งานได้ตามที่คาดไว้ในตอนนี้ หวังว่านี่จะช่วยใครสักคน ..

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