github ล็อคเทอร์มินัล Mac เมื่อใช้คำสั่งดึง


97

ฉันอยู่ระหว่างการเรียนรู้ github บน Mac (บรรทัดคำสั่ง) และเมื่อใดก็ตามที่ฉันgit pull origin masterได้รับสิ่งนี้

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

ดูเหมือนว่าเทอร์มินัลจะล็อคและไม่อนุญาตให้ฉันป้อนอะไรทันทีจากนั้นในที่สุดเมื่อมันอนุญาตให้ฉันป้อนข้อความดูเหมือนว่ามันจะไม่รู้จักคำสั่ง git

นี่เป็นบั๊กในคอมไพล์หรือฉันพลาดอะไรไป?


5
มันถูกล็อคจริงๆหรือคุณไม่คุ้นเคยvi?
Edward Thomson

2
ฉันไม่สามารถบอกคุณได้ว่าทำไม แต่คอมไพล์ต้องการให้คุณป้อนข้อความคอมมิตและคุณน่าจะอยู่ในกลุ่มแก้ไขข้อความ
Misch

ฉันเห็นใช่ฉันไม่คุ้นเคยกับกลุ่มคน ฉันจะป้อนและบันทึกความคิดเห็นได้อย่างไร?
ศูนย์

7
พิมพ์iเพื่อแทรกความคิดเห็นจากนั้นกด esc และพิมพ์:wq
Scott Harwell

2
ถ้าคุณไม่คุ้นเคยviคุณจะไม่ถูกขัง?
Ben Racicot

คำตอบ:


228

คุณอยู่ในโปรแกรมแก้ไขข้อความเป็นกลุ่ม! มันเป็นโปรแกรมแก้ไขข้อความโมดอลดังนั้นคุณจะต้อง:

  1. กดiเพื่อเข้าสู่แทรกโหมด
  2. ตอนนี้คุณสามารถพิมพ์ข้อความของคุณได้ราวกับว่าคุณอยู่ในโปรแกรมแก้ไขข้อความปกติ
  3. กดescที่จะกลับไปโหมดคำสั่ง
  4. จากนั้นพิมพ์:wตามด้วยenterเพื่อบันทึก
  5. สุดท้าย:qตามด้วยenterเลิก.

4
มันยอดเยี่ยมมากที่คอมไพล์ถือว่าทุกคนรู้จักกลุ่ม
user124384

2
@ user124384 Git พยายามใช้$EDITORตัวแปรสภาพแวดล้อมของคุณแต่กลับไปใช้viถ้าไม่พบ core.editorคุณสามารถกำหนดค่าของทางเลือกการกำหนดค่าผ่านทางคอมไพล์ ดูgit-scm.com/book/en/v2/…
ceyko

ฉันจะพิมพ์ได้iที่ไหน?
Val Do

1
@ val-kharitonashvili บนแป้นพิมพ์แปลก ๆ มันอยู่ติดกับuและo;) แต่จริงๆแล้วตราบใดที่เทอร์มินัลมีโฟกัสก็ควรใช้งานได้
ceyko

ทำไมสิ่งนี้ถึงเกิดขึ้น? ฉันได้รับเสมอทำgit merge masterและในอดีตที่ผ่านมา 2 วันที่ฉันเห็นนี้ ...
น้ำผึ้ง


2

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

  • เพียงพิมพ์iและคุณจะเข้าสู่-- INTER --โหมดตอนนี้คุณสามารถเขียนความคิดเห็นของคุณได้

  • หลังจากที่คุณเขียนเสร็จแล้วให้กดescปุ่มบนแป้นพิมพ์ของคุณและคุณจะเข้าสู่โหมดคำสั่ง ( ดูที่ด้านล่างของคอนโซล )

  • ตอนนี้บันทึกการเปลี่ยนแปลงโดยการเขียน:wตามด้วยการกดenterปุ่ม

การเขียนคำสั่ง <code>: w </code>

  • คุณสามารถออกได้ทันทีโดยการเขียน:qตามด้วยการกดenterปุ่ม

การเขียนคำสั่ง <code>: q </code>

  • เย่! ในที่สุดคุณก็กลับไปที่คอนโซลหลัก


1

รันคำสั่งนี้

git config --global core.editor "gedit"

เพิ่มข้อความของคุณในไฟล์นี้และบันทึก ย้อนกลับไปตอนนี้


0

ฉันแก้ไขปัญหานี้โดยทำตามขั้นตอนต่อไปนี้

  1. ลบ# MERGE_MSG #

    rm .git/\#MERGE_MSG#

  2. ลบMERGE_HEAD

    rm .git/MERGE_HEAD

นอกจากนี้ฉันตั้งค่าตัวแก้ไขของ git อย่างชัดเจนเป็นตัวแก้ไขที่ฉันคุ้นเคยกับกลุ่ม (คุณสามารถตั้งค่านาโนได้ )

`git config --global core.editor "vim"`

0

คุณทำได้ git checkout --merge yourbranch

การผสานสามทางระหว่างสาขาปัจจุบันเนื้อหาแผนผังการทำงานของคุณและสาขาใหม่เสร็จสิ้นและคุณจะอยู่ในสาขาใหม่


0

ปัญหามักเกิดขึ้นเมื่อเราสะกดคำผิด
มีแนวโน้มว่าคำสั่งนี้คุณสนใจ:

git commit -m "message"

หากมีปัญหาก็อาจมีข้อความเช่น

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

และใช้:

git pull

ซึ่งควรนำไปสู่:

Already up-to-date.

จากนั้นจึงเป็นการดีที่จะตรวจสอบ:

git status

แล้วลองกดอีกครั้ง:

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