ทำไม“ git difftool” ไม่เปิดเครื่องมือโดยตรง


157

ฉันกำหนดค่าgitเช่นนี้:

git config --global diff.tool meld

เมื่อฉันวิ่ง:

git difftool

ฉันได้รับข้อความต่อไปนี้:

Viewing: 'hello.txt'
Hit return to launch 'meld': 

แล้วถ้าผมกดEnter, meldจะเปิดตัว

ฉันจะปิดการใช้งานข้อความนี้เพื่อที่meldจะเปิดตัวทันทีหลังจากพิมพ์git difftool?



4
ฉันคิดว่าคำถามที่ถูกต้องก็คือ: ทำไมต้องมีการอนุมัติเพิ่มเติมโดยค่าเริ่มต้น
Radek Postołowicz

คำตอบ:


64
man git-difftool

OPTIONS
   -y, --no-prompt
       Do not prompt before launching a diff tool.

20
คำตอบโดย @ZJR ดูเหมือนจะเป็นคำตอบที่คนส่วนใหญ่ต้องการ (รวมถึงฉัน)
Jono

1
อ้างถึงคำตอบของ ZJR (ในกรณีที่มีการเปลี่ยนชื่อผู้ใช้): stackoverflow.com/questions/7897517/…
Peter Mortensen

คำตอบที่ดีกว่าด้านล่าง
m1m1k

@ m1m1k ความคิดเห็นที่ดีกว่า :-)
Duncan Jones

379

นอกจากนี้ยังมีตัวเลือก:

difftool.prompt
  Prompt before each invocation of the diff tool.

คำสั่งต่อไปนี้ปิดพรอมต์ทั่วโลก (สำหรับ repos ทั้งหมด):

git config --global difftool.prompt false

สิ่งที่ชอบเขียนใน~/.gitconfig:
(หรือใน%HOMEDRIVE%%HOMEPATH%\.gitconfig)

[difftool]
  prompt = false

16
นี่คือทางออกที่เหมาะสม คำตอบตั้งค่าสถานะโซลูชันไม่บันทึกการกดปุ่มใด ๆ ขอบคุณมาก.
sweisgerber.dev

2
@ sebweisgerber ฉันเพิ่งถอดความคำตอบที่ทำเครื่องหมายไว้และค้นพบวิธีทำให้ถาวร ฉันคงไม่พบตัวเลือกอื่น
ZJR

1
นี่เป็นคำตอบที่ดีกว่าเพราะจะจัดการกับเคสเป็นการกระทำเริ่มต้นซึ่งจะช่วยให้ผู้เขียนคำถามใช้ Git-difftool ต่อไปตามที่ต้องการ
Neil Monroe

อันที่จริง--addตัวเลือกถูกวางผิดที่นี่ มันหมายถึงการเพิ่มการตั้งค่า "prompt = false" ให้กับรายการใด ๆ ของ "promt" ที่มีอยู่แล้วในขณะที่เป้าหมายคือการแทนที่ค่าปัจจุบันหรือเพิ่มในครั้งแรก --addลักษณะการทำงานนี้จะประสบความสำเร็จได้โดยไม่ต้อง
user905686

17
ตรวจสอบให้แน่ใจว่าคุณไม่ได้propmt = falseอยู่ภายใต้ส่วน [difftool "toolname"] `โดยบังเอิญ มันไม่ทำงาน มันควรจะอยู่ภายใต้[difftool]ส่วน
Fosna
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.