kdiff

2012-11-09 3 views
7

का उपयोग कर निर्देशिका गिट शाखा diff कैसे प्राप्त करें मैंने kDiff3 को गिट के साथ कॉन्फ़िगर किया है।kdiff

मुझे दो शाखाओं के बीच निर्देशिका अंतर देखने की आवश्यकता है। जब मैं

git difftool <headbranch>

आदेश चला यह सभी फाइलों को एक के बाद एक खुल जाता है। लेकिन वह मैं नहीं चाहता।

उत्तर

0

आप

git diff --name-status <other-branch> 

इस्तेमाल कर सकते हैं यह अंतर के साथ फ़ाइलों को सूचीबद्ध करता है, ए/एम/डी की स्थिति के साथ।

+0

धन्यवाद, यह मदद की। निर्देशिकाओं की तुलना करने के लिए भी kDiff3 अच्छा है। ए/एम/डी वास्तव में एक बड़ी मदद है। –

1

मुझे kdiff3 और मानक गिट उपकरण का उपयोग कर निर्देशिका तुलना मोड में दो शाखाओं के बीच निर्देशिका अंतर देखने की संभावनाएं नहीं मिली हैं।

क्या मानक उपकरण (मुझे ठीक अगर मैं गलत हूँ :) का उपयोग कर कंसोल में फ़ाइल की तुलना द्वारा फ़ाइल difftool उपयोग कर, और सिंहावलोकन है का उपयोग किया जा सकता है:

git diff --name-status <other-branch> 

लेकिन मैं Comprehensive Graphical Git Diff Viewer Script पाया है, ऐसा ही किया वांछित के रूप में मेरे लिए काम करें - kdiff3 में पूरी निर्देशिका की तुलना करने के लिए।

उपकरण केवल एक शेल स्क्रिप्ट है जो शाखाओं से तुलनात्मक स्नैपशॉट/tmp फ़ोल्डर में बनाता है और उन पर kdiff3 फ़ोल्डर तुलना चलाता है।

चेकआउट स्क्रिप्ट here

13

Git-difftool (1) अब उपयोग के इस मामले को संतुष्ट करता है। बस --dir-diff का उपयोग (या -d) स्विच:

-d 
--dir-diff 
    Copy the modified files to a temporary location and perform 
    a directory diff on them. This mode never prompts before 
    launching the diff tool. 
उदाहरण के लिए

तो:

git difftool -d --tool=kdiff3 10c25f0da62929cca0b559095a313679e4c9800e..980de1bbe1f42c327ed3c9d70ac2ff0f3c2ed4e1 

भी https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html

+0

मैं इस कमांड का भी उपयोग करता हूं, लेकिन पैरामीटर '--no-symlink' भी जोड़ता हूं ताकि kdiff3 में किए गए कोई भी परिवर्तन वर्तमान चेक आउट कार्य निर्देशिका लागू कर सकें। – Robert

0

देखें मान लीजिए, हम दो शाखाएं हैं मास्टर और आधार di को देखने के लिए इन शाखाओं के बीच fference, बस निष्पादित करें:

git difftool -d base:src/ master:src/ 

फिर अपने पूर्व निर्धारित diff उपकरण आरंभ करने चाहिए मेरे मामले kdiff3 में,। या आप --tool विकल्प का उपयोग किसी अन्य को शुरू करने के लिए भी कर सकते हैं: उदा। साथ vimdiff

git difftool -d --tool=vimdiff base:src/ master:src/ 

या kdiff3 साथ उसी तरह

git difftool -d --tool=kdiff3 base:src/ master:src/