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


515

ฉันกำลังใช้ Git ฉันดึงจาก repo ระยะไกลและได้รับข้อความแสดงข้อผิดพลาด:

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

ฉันพยายามพิมพ์ข้อความและกดEnterแต่ไม่มีอะไรเกิดขึ้น

ฉันจะบอก Git / Terminal ได้อย่างไรฉันพิมพ์ข้อความเสร็จแล้ว?

ฉันใช้ Terminal ใน OS X


3
ดูเหมือนว่า GIT ของคุณได้รับการกำหนดค่าให้เปิดเทมเพลตที่กำหนดค่าไว้ล่วงหน้าและเทมเพลตนั้นได้รับการเปิดผ่านเครื่องมือแก้ไขเริ่มต้น (vi / vim)
Shunya

ยกเลิกการรวมนี้และลองใช้ git pull --rebase
Ankush Jain

3
สร้างฟอร์ม "Shift ZZ" ให้ฉันแก้ปัญหา
papacico

คำตอบ:


1189

ไม่ใช่ข้อความแสดงข้อผิดพลาด Git แต่เป็นตัวแก้ไขเนื่องจาก git ใช้เครื่องมือแก้ไขเริ่มต้นของคุณ

เพื่อแก้ปัญหานี้:

  1. กด "i" (i เพื่อใส่)
  2. เขียนข้อความผสานของคุณ
  3. กด "esc" (หลบหนี)
  4. เขียน ": wq" (เขียนและออก)
  5. จากนั้นกด Enter

7
ok แต่นี้คือสมมติบรรณาธิการของเขาหรือvi vim
Gabriele Petronella

106
นั่นคือ hella ซับซ้อน
Connor Leech

92
ลอร์ดฉันเกลียดVi
Sobiaholic

153
หากมันช่วยใครได้วิธีที่คุณจำได้ก็คือ "i" ใช้สำหรับ "insert", "esc" คือการออกจากการแทรกและ ": wq" เป็นเพียง "write" และ "quit"
Josh Beam

83
นี่อาจเป็น↑↑↓↓←→←→ BA
เวสลีย์สมิ ธ

39

จริงๆแล้วมันไม่ใช่ข้อผิดพลาด! หมายความว่าคุณควรป้อนข้อความเพื่อทำเครื่องหมายการรวมนี้ ระบบปฏิบัติการของฉันคือ Ubuntu 14.04 หากคุณใช้ระบบปฏิบัติการเดียวกันคุณต้องทำสิ่งต่อไปนี้:

  1. พิมพ์ข้อความ

  2. CtrlCO

  3. พิมพ์ชื่อไฟล์ (เช่น "Merge_feature01") แล้วกด Enter

  4. CtrlX เพื่อออก

ตอนนี้ถ้าคุณไปที่. git แล้วคุณจะพบไฟล์ "Merge_feature01" นั่นคือบันทึกการผสานจริง ๆ


6
ฉันสงสัยว่าคนจะรู้ได้อย่างไร มันแปลกมากที่มันทำงานได้อย่างไร ขอบคุณที่ตอบคำถามนี้
Adrian Carr

@ScottyBlades ทำไมบนโลกนี้ล่ะ? คำถามถูกแท็ก osx และคำตอบนี้เกี่ยวข้องกับวิธีที่ Ubuntu ตั้งค่าการตั้งค่าที่แตกต่างอย่างสิ้นเชิงสำหรับ Git (โดยใช้nanoหรือpico) ซึ่งไม่สามารถใช้ได้กับการตั้งค่า OS X มันไม่สามารถสรุปได้ทั่วไปและยังไม่ได้ให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการทำงานดังนั้นความคิดเห็นที่เหลือโดย @AdrianCarr มีคำตอบที่ดีกว่าตอนนี้
oligofren

27

tl; dr ตั้งค่าตัวแก้ไขให้ดีกว่าเช่น Sublime หรือ Atom

นี่ดีใช้ในความหมายของตัวแก้ไขที่คุณชอบหรือค้นหาผู้ใช้ที่เป็นมิตรชอบหรือหาผู้ใช้ง่ายขึ้น

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

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

  1. การตั้งค่า git config core.editor (ต่อโครงการหรือทั่วโลก)
  2. VISUALหรือEDITORตัวแปรสภาพแวดล้อม (งานนี้สำหรับโปรแกรมอื่น ๆ เช่นกัน)

ฉันจะกล่าวถึงตัวเลือกแรกสำหรับบรรณาธิการยอดนิยมสองคน แต่ GitHub มีคำแนะนำที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้สำหรับบรรณาธิการหลายคนเช่นกัน

หากต้องการใช้ Atom

ตรงจากเอกสารป้อนในเทอร์มินัล: git config --global core.editor "atom --wait"

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

ในการใช้ Sublime Text

ด้วยเหตุผลเดียวกับในกรณี Atom คุณต้องมีการตั้งค่าสถานะพิเศษเพื่อส่งสัญญาณไปยังกระบวนการที่ไม่ควรแยกไปที่พื้นหลัง:

git config --global core.editor "subl -n -w"


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

22

แค่ทำ,

CTRL + X

CTRL + C

มันจะขอให้คุณบันทึกไฟล์กดYจากนั้นคุณทำเสร็จแล้ว


นี่คือถ้าตัวแก้ไขเริ่มต้นของคุณคือ "pico" หรือ "nano" ความคิดเห็นข้างต้นควรใช้ถ้าตัวแก้ไขเริ่มต้นของคุณเป็นกลุ่ม
JacKeown

7

ที่นี่ขอให้คุณข้อความที่เชื่อมต่อกับการผสานของคุณสำหรับการอ้างอิงในอนาคตว่าทำไมคุณทำผสานนี้

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

แต่คุณสามารถคอมไพล์CtrlZและลองคอมมิชชันอีกครั้ง แต่คราวนี้เพิ่ม "-m" พร้อมข้อความในเครื่องหมายคำพูดหลังจากนั้นมันจะคอมมิทโดยไม่แสดงพร้อมท์ให้คุณพร้อมหน้านั้น


3
ฮ่า ๆ นี่จะแก้ปัญหาของ OP แน่นอน git commit -m 'I did blah'
James M. Lay

ฉันมีรุ่น 1.7.11.4 คอมไพล์เทอร์มินัลลินุกซ์และถึงแม้ว่าฉันจะให้คอมมิท -m "message" หรือ git commit - ข้อความ "message" ยังคงเป็นป๊อปอัพตัวแก้ไขขอข้อความ ไม่มีใครรู้ว่าทำไมสวิตช์ "-m" จึงถูกมองข้าม?
pglpm

4

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

git rebase หรือ git pull --rebase

นี่เป็นบทความที่ดีอธิบายความแตกต่างระหว่าง&git pullgit pull --rebase

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


0

วิธีการเพิ่มข้อความในแอนดรอยด์สตูดิโอ android ด้วยการผสานนี่คือสำหรับผู้ใช้ mac

  • ขั้นตอนที่หนึ่ง - กด "i"
  • ขั้นตอนที่สอง - ป้อนข้อความหลังจาก "#"
  • ขั้นตอนที่สาม - กด "esc"
  • ขั้นตอนที่สี่ - ที่ด้านล่างสุดเขียน ": wq"
  • ขั้นตอนที่ห้า - กด "Enter"

คุณทำเสร็จแล้วด้วยการผสานของคุณจากนั้นคุณสามารถทำงานต่อในการดึงไปยังท้องถิ่นของคุณหลังจากหรือสร้างสาขาใหม่


0

ไม่ใช่ข้อความแสดงข้อผิดพลาด Git แต่เป็นเครื่องมือแก้ไข git ใช้เครื่องมือแก้ไขเริ่มต้นของคุณ

เพื่อแก้ปัญหานี้:

  1. กด“ i”
  2. เขียนข้อความผสานของคุณ
  3. กด“ esc”
  4. เขียน“: wq”
  5. และกด Enter

คำอธิบาย

วิธีที่คุณจำได้ว่านี่คือ“ i” สำหรับ“ insert”,“ esc” คือทางออกของการแทรกและ“: wq” เป็นเพียง“ เขียน” และ“ ออกจาก”


0

นี่ไม่ใช่ข้อผิดพลาด คุณต้องเพิ่ม massege สำหรับการผสานนี้

เพื่อแก้ปัญหานี้:

  1. กด "i" เพื่อแทรก massege ของคุณ
  2. เขียนหมอนวดของคุณ
  3. กด "esc"
  4. เขียน ": wq" (เขียนและออกเพื่อบันทึก massege และออก)
  5. กดปุ่มตกลง"

-1

ฉันพบข้อผิดพลาดเนื่องจากฉันยังใหม่กับ git คุณต้องตรวจสอบว่าคุณป้อนไวยากรณ์ที่ถูกต้องหรือไม่

ฉันทำผิดพลาดและเขียน git commit

และได้รับข้อผิดพลาดเดียวกัน

ใช้ git commit -m 'some comment'

และคุณจะไม่เห็นหน้าด้วย

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