चार्ल्स बेली के जवाब पर फॉलो-अप करने के लिए, यहाँ मेरा git सेटअप है जो p4merge (फ्री क्रॉस-प्लेटफॉर्म 3way मर्ज टूल) का उपयोग कर रहा है; एमएसआईएस गिट पर परीक्षण (विंडोज) स्थापित करें:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
या, एक विंडो cmd.exe शेल से, दूसरी पंक्ति बन जाती है:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
परिवर्तन (चार्ल्स बेली के सापेक्ष):
- वैश्विक git config में जोड़ा गया है, यानी सभी git परियोजनाओं के लिए मान्य है, न कि केवल वर्तमान
- कस्टम टूल कॉन्फिगर वैल्यू "मेरिजेट [[टूल] .cmd" में रहता है, न कि "मर्ज। [टूल] .cmd" के लिए (मूर्खतापूर्ण तरीके से, एक घंटे की समस्या निवारण के लिए क्यों git नॉन-मौजूदा टूल के बारे में शिकायत करता रहा।
- सभी फ़ाइल नामों के लिए दोहरे उद्धरण जोड़े गए ताकि रिक्त स्थान वाली फ़ाइलें अभी भी मर्ज टूल द्वारा मिल सकें (मैंने इसे Powershell से msys Git में परीक्षण किया है)
- ध्यान दें कि डिफ़ॉल्ट रूप से पेरफोर्स अपनी स्थापना को PATH में जोड़ देगा, इस प्रकार कमांड में p4merge के लिए पूर्ण पथ निर्दिष्ट करने की आवश्यकता नहीं है
डाउनलोड करें: http://www.perforce.com/product/compenders/perforce-visual-merge-and-diff-tools
EDIT (फरवरी 2014)
जैसा कि @Gregory Pakosz द्वारा बताया गया है , नवीनतम msys अब "मूल रूप से" p4merge ( 1.8.5.2.msysgit.0 पर परीक्षण ) का समर्थन करता है ।
आप चलकर समर्थित उपकरणों की सूची प्रदर्शित कर सकते हैं:
git mergetool --tool-help
आपको उपलब्ध या मान्य सूची में p4merge देखना चाहिए । यदि नहीं, तो कृपया अपना गिट अपडेट करें।
यदि p4merge उपलब्ध के रूप में सूचीबद्ध किया गया था , तो यह आपके PATH में है और आपको केवल merge.tool सेट करना है :
git config --global merge.tool p4merge
यदि यह के रूप में सूचीबद्ध किया गया मान्य है, तो आप को परिभाषित करने के लिए है mergetool.p4merge.path के अलावा merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- ऊपर एक उदाहरण पथ है जब p4merge को मौजूदा उपयोगकर्ता के लिए स्थापित किया गया था, न कि सिस्टम-वाइड (जिसके लिए व्यवस्थापक अधिकारों या UAC उन्नयन की आवश्यकता नहीं है)
- यद्यपि
~
वर्तमान उपयोगकर्ता की होम निर्देशिका में विस्तार होना चाहिए (इसलिए सिद्धांत रूप में पथ होना चाहिए ~/AppData/Local/Perforce/p4merge.exe
), यह मेरे लिए काम नहीं करता था
- पर्यावरण चर (जैसे
$LOCALAPPDATA/Perforce/p4merge.exe
) का लाभ उठाने के लिए भी बेहतर होगा , git पथों के लिए पर्यावरण चर का विस्तार नहीं करता प्रतीत होता है (यदि आप जानते हैं कि यह काम कैसे करना है, तो कृपया मुझे इसका उत्तर बताएं या अपडेट करें)