ฉันใช้msysgit 1.7.7.1บน Windows git diff
ฉันได้รับข้อผิดพลาดเมื่อใช้ สาเหตุนี้คืออะไร? ไม่มีเครื่องมือ diff ที่รวมอยู่ใน msysgit หรือไม่? ฉันควรทำอย่างไรดี?
คำเตือน: เทอร์มินัลทำงานไม่สมบูรณ์
ฉันใช้msysgit 1.7.7.1บน Windows git diff
ฉันได้รับข้อผิดพลาดเมื่อใช้ สาเหตุนี้คืออะไร? ไม่มีเครื่องมือ diff ที่รวมอยู่ใน msysgit หรือไม่? ฉันควรทำอย่างไรดี?
คำเตือน: เทอร์มินัลทำงานไม่สมบูรณ์
คำตอบ:
สำหรับ Git Bash สามารถแก้ไขได้โดยเพิ่มบรรทัดต่อไปนี้ใน ~ / .bashrc:
export TERM=cygwin
-หรือ-
export TERM=msys
ครั้งแรกดูเหมือนจะเป็นต้นฉบับโดย git สำหรับ windows แบบที่สองเป็นที่รู้จักในรูปแบบ "รักษา" เช่นกัน
ปัญหาอาจเกิดขึ้นได้หากโปรแกรมอื่น (เช่นStrawberry Perl ) ตั้งค่าไฟล์TERM
ตัวแปรสภาพแวดล้อมของระบบ
setx TERM msys
ไฟล์. SETX
(ตรงข้ามกับ SET เท่านั้น) เขียนตัวแปร env ไปยังรีจิสตรี
ตัวอย่างเช่นหากคุณประสบปัญหาใน cmd.exe โปรดดูคำเตือนที่นี่:
จากนั้นตั้งค่าตัวแปรสภาพแวดล้อมของคุณและรวม TERM = msys หลังจากนั้นทุกครั้งที่คุณเปิด cmd.exe ตัวแปรของคุณจะถูกตั้งค่าอย่างถูกต้อง
ตอนนี้คุณต้องรีสตาร์ทเปลือกของคุณ (CMD.EXE) เพียงแค่เรียกใช้ใหม่ และจากนั้นคุณจะไม่มีปัญหาอีกต่อไป อีกครั้ง:
คำตอบข้างต้นไม่ได้ผลสำหรับฉันอย่างเต็มที่ดังนั้นฉันจึงทำ: เพิ่ม
export TERM=msys
เป็น " [githome] / etc / profile " ที่ด้านบน แต่ทำการเปลี่ยนแปลงสำหรับ git bash เท่านั้น จากนั้นฉันก็เพิ่ม
@set TERM=msys
เป็น " [githome] /cmd/git.cmd " หลัง @setlocal (ฉันติดตั้งเฉพาะ git ที่เรียกใช้จากบรรทัดคำสั่ง) อาจจะเป็นการตัดสินใจที่ไม่ดีอย่างแท้จริง แต่ก็ใช้ได้ผลสำหรับฉันและไม่มีคำเตือนใด ๆ เกี่ยวกับเทอร์มินัล (ฉันใช้ git เวอร์ชัน 1.7.10.msysgit.1)
คำตอบสามารถพบได้ที่นี่ซึ่งผู้เขียนวิธีแก้ปัญหาอ้างว่า:
ตัวแปรสภาพแวดล้อม
TERM
ถูกตั้งค่าเป็นdumb
นั่นคือแทนที่จะเป็น
TERM=cygwin
คุณสามารถเปลี่ยนเป็น
TERM=msys
เพื่อแก้ปัญหาในมือ
ฉันทำงานใน powershell และฉันมี git ที่เรียกใช้งานได้โดยตรงในเส้นทางของฉัน
คำตอบที่แนะนำไม่ได้ผล แต่ฉันพบวิธีแก้ปัญหาที่เหมาะกับฉัน
ฉันเพิ่มบรรทัดในโปรไฟล์ powershell ของฉัน:
$env:TERM="msys"
ซึ่งแก้ไขปัญหาให้ฉัน
วิธีแก้ปัญหาที่รวดเร็วและสกปรกในกรณีของฉันคือการใช้--no-pager
ตัวเลือก
ตามค่าเริ่มต้นคำสั่ง git บางคำสั่ง (like log
) จะใช้เพจเจอร์เช่นless
หากพวกเขาคาดหวังว่าเอาต์พุตจะยาว เพจเจอร์ต้องการสิ่งต่างๆเช่นการเลื่อนข้อความขึ้นและลงโดยใช้ปุ่มลูกศรซึ่งบางครั้งก็ไม่ได้ผลหากสมมติฐานเกี่ยวกับประเภทของเทอร์มินัลที่คุณใช้ผิด (นี่คือความหมาย "ไม่ทำงานอย่างสมบูรณ์")
หากคุณทราบล่วงหน้าว่าเอาต์พุตของคุณจะสั้นหรือคุณเพียงแค่ต้องการให้เอาต์พุตดัมพ์ไปยังเทอร์มินัลและปล่อยให้เลื่อนขึ้นไปที่โปรแกรมเทอร์มินัลคุณสามารถแทนที่สิ่งนี้และไม่ใช้เพจเจอร์เลยเช่น:
git --no-pager log
ในกรณีที่มีคนได้รับการเปิดตัวทุบตีนี้จาก Git Path to linux tools...
ส่วนขยายให้ตรวจสอบการตั้งค่าสำหรับ C:\cygwin
เหมืองแร่ถูกกำหนดให้ เปลี่ยนเป็นC:\Program Files (x86)\Git\bin\
แก้ไขให้ฉัน ฉันไม่ต้องตั้งค่าตัวแปร TERM เพื่อเปิด bash ด้วยวิธีนี้