दिलचस्प पोस्ट
UITableViewCell से UITableView कैसे प्राप्त करें? मुझे पंडों में एक डेटा फ्रेम की प्रतिलिपि क्यों बनाऊं? मैं गैर-इंटरैक्टिव तरीके से जीआईटी रिबेस – इंटरएक्टिव कैसे चला सकता हूं? PHP के साथ आरएसएस / एटम फीड्स को पार्स करने का सबसे अच्छा तरीका UIWebView से ढाल पृष्ठभूमि निकालें? कैसे विंडोज़ पर मिलीसेकंड से धागे को नींद कम करना ggplot2 और नकारात्मक मूल्यों वाला एक स्टैक्ड बार चार्ट jQuery अजाक्स सफलता अनाम समारोह गुंजाइश सी # में संदर्भित XSD के विरुद्ध एक्सएमएल की पुष्टि करना नोक्लास डीफफाउंड एरर – ग्रहण और एंड्रॉइड मैं एएसपी.नेट एमवीसी में आदर्श राज्य की त्रुटियों का संग्रह कैसे प्राप्त करूं? कैसे जांच करें कि उपयोगकर्ता ब्राउज़र इतिहास में वापस जा सकता है या नहीं दिनांक से महीने का नाम प्राप्त करें आईओएस: ऑटो लेआउट में मल्टी-लाइन यूआईएलबल 'सिस्टम.ऑटऑफमोमररी एक्सपेशमेंट' तब फेंका गया जब बहुत मेमोरी फ्री हो

विंडोज़ पर गिट: आप एक मेरेटोल कैसे स्थापित करते हैं?

मैंने साइजविन पर एमएसआईएसजीट और जीआईटी की कोशिश की है दोनों काम सिर्फ और खुद में ठीक है और दोनों gitk और git-gui पूरी तरह से चलाने के लिए

अब हेक कैसे मैं एक मेरेटोल कॉन्फ़िगर कर सकता हूँ? (विमडीफ सिगविन पर काम करता है, लेकिन अधिमानतः मुझे कुछ विंडोज-प्रेम सहकर्मियों के लिए कुछ और अधिक उपयोगकर्ता-अनुकूल चाहूंगा।)

वेब के समाधान से एकत्रित समाधान "विंडोज़ पर गिट: आप एक मेरेटोल कैसे स्थापित करते हैं?"

चार्ल्स बेली के उत्तर पर अनुवर्ती कार्रवाई करने के लिए, यहां मेरा जीआईटी सेटअप है जो पी 4 मेर्ज (फ्री क्रॉस-प्लेटफॉर्म 3 वे मर्ज टूल) का उपयोग कर रहा है; एमएसआईएस जीआईटी (विंडोज) पर परीक्षण किया गया:

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\"" 

परिवर्तन (चार्ल्स बेली के रिश्तेदार):

  • वैश्विक जीआईटी कॉन्फ़िग में जोड़ा गया, अर्थात सभी जीआईटी प्रोजेक्ट्स के लिए मान्य न सिर्फ मौजूदा एक
  • कस्टम टूल कॉन्फ़िग वैल्यू "मर्जोल। [उपकरण]। सीएमडी" में रहता है, "मर्ज नहीं है।" [उपकरण] .सीएमडी "(मुझे मूर्खतापूर्ण, एक घंटे का समस्या निवारण क्यों जीट ने गैर-मौजूदा उपकरण के बारे में शिकायत की है)
  • सभी फ़ाइल नामों के लिए दोहरे उद्धरण चिह्न जोड़े गए ताकि रिक्त स्थान के साथ फाइल मर्ज टूल के द्वारा अभी भी मिल सकें (मैं इसे पावरशेल्ड से एमएसआईएस गिट में परीक्षण किया)
  • ध्यान दें कि डिफ़ॉल्ट रूप से Perforce PATH को अपनी स्थापना डिस्क जोड़ देगा, इस प्रकार कमांड में p4merge के लिए पूर्ण पथ निर्दिष्ट करने की कोई आवश्यकता नहीं है

डाउनलोड करें: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools


संपादित करें (फरवरी 2014)

जैसा कि ग्रेगरी पकोस द्वारा बताया गया है, नवीनतम एमएसआईएस जीआईटी अब "मूल रूप से" p4merge का समर्थन करती है ( 1.8.5.2.msysgit.0 पर परीक्षण किया गया)।

आप चलाकर समर्थित उपकरणों की सूची प्रदर्शित कर सकते हैं:

 git mergetool --tool-help 

आपको या तो उपलब्ध या वैध सूची में p4merge देखना चाहिए। यदि नहीं, तो कृपया अपना जीआईटी अपडेट करें।

यदि p4merge को उपलब्ध के रूप में सूचीबद्ध किया गया था, तो यह आपके पथ में है और आपको मर्ज सेट करना होगा। टोल :

 git config --global merge.tool p4merge 

यदि इसे वैध के रूप में सूचीबद्ध किया गया था, तो आपको mergeool.p4merge.path को मर्ज करने के अलावा में परिभाषित करना होगा। टोल :

 git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe 
  • उपरोक्त उदाहरण पथ है, जब वर्तमान उपयोगकर्ता के लिए p4merge स्थापित किया गया था, सिस्टम-वाइड नहीं (व्यवस्थापक अधिकारों या यूएसी उन्नयन की आवश्यकता नहीं है)
  • यद्यपि ~ वर्तमान उपयोगकर्ता की होम डाइरेक्टरी में विस्तार होना चाहिए (इसलिए सिद्धांत में पथ होना चाहिए ~/AppData/Local/Perforce/p4merge.exe ), यह मेरे लिए काम नहीं करता
  • इससे भी बेहतर एक पर्यावरण चर का लाभ उठाना होता था (जैसे $LOCALAPPDATA/Perforce/p4merge.exe ), जीआईटी पथों के लिए पर्यावरण चर का विस्तार नहीं करता है (यदि आप जानते हैं कि यह कैसे काम करना है, तो कृपया मुझे बताएं या इस उत्तर को अपडेट करें)

सेटिंग mergetool.p4merge.cmd अब और काम नहीं करेगा क्योंकि Git ने p4merge का समर्थन करने की कोशिश करना शुरू कर दिया है, libexec / git-core / git-mergetool–lib.so हमें सिर्फ git के लिए mergetool पथ को निर्दिष्ट करने की आवश्यकता है, उदाहरण के लिए p4merge:

 git config --global mergetool.p4merge.path 'C:\Program Files\Perforce\p4merge.exe' git config --global merge.tool p4merge 

तो यह काम करेगा

मैं WinXP पर पोर्टेबल गिट का उपयोग कर रहा हूँ (एक इलाज करता है!), और शाखाओं में आने वाले संघर्ष को हल करने के लिए आवश्यक है सभी GUI के मैंने जांच की, KDiff3 उपयोग करने के लिए सबसे पारदर्शी साबित हुआ।

लेकिन मुझे यह निर्देश मिल गया कि मुझे यह ब्लॉग पोस्ट में विंडोज़ में काम करने के लिए जरूरी निर्देश मिले, ये निर्देश जो यहां सूचीबद्ध अन्य तरीकों से थोड़ा भिन्न हैं I यह मूल रूप से मेरी .gitconfig फ़ाइल में इन पंक्तियों को जोड़ने की राशि थी:

 [merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/YourPathToBinaryHere/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false 

अब अच्छी तरह से काम करना!

साइगविन के तहत, मेरे लिए काम करने वाली एकमात्र चीज निम्न है:

 git config --global merge.tool myp4merge git config --global mergetool.myp4merge.cmd 'p4merge.exe "$(cygpath -wla $BASE)" "$(cygpath -wla $LOCAL)" "$(cygpath -wla $REMOTE)" "$(cygpath -wla $MERGED)"' git config --global diff.tool myp4diff git config --global difftool.myp4diff.cmd 'p4merge.exe "$(cygpath -wla $LOCAL)" "$(cygpath -wla $REMOTE)"' 

इसके अलावा, मैं difftool के लिए शीघ्र संदेश बंद करना चाहता हूं:

 git config --global difftool.prompt false 

git mergetool पूरी तरह से कॉन्फ़िगर करने योग्य है ताकि आप अपने पसंदीदा टूल को काफी पसंद कर सकें।

पूर्ण दस्तावेज यहां है: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

संक्षेप में, आप उपयोगकर्ता कॉन्फ़िगर चर merge.tool सेट करके डिफ़ॉल्ट merge.tool को सेट कर सकते हैं।

यदि मर्ज टूल ने इसे मूल रूप से समर्थित लोगों में से एक है, तो आपको सिर्फ mergetool.<tool>.path सेट करना होगा mergetool.<tool>.path के पूर्ण पथ के लिए पथ ( <tool> बदलें, जिसे आपने merge.tool की है।

अन्यथा, आप mergetool सेट कर सकते हैं mergetool.<tool>.cmd शेल चर के साथ रनटाइम पर eval'ed करने के लिए शैल चर $BASE, $LOCAL, $REMOTE, $MERGED उचित फ़ाइलों पर सेट $BASE, $LOCAL, $REMOTE, $MERGED किए गए। आपको बचने के साथ सावधान रहना होगा कि क्या आप सीधे config फाइल को संपादित करते हैं या git config कमांड के साथ चर सेट करते हैं।

ऐसा कुछ इस बात का स्वाद देना चाहिए कि आप क्या कर सकते हैं ('मैमेरगे' एक काल्पनिक उपकरण है)।

 git config merge.tool mymerge git config merge.mymerge.cmd 'mymerge.exe --base "$BASE" "$LOCAL" "$REMOTE" -o "$MERGED"' 

एक बार आपके पसंदीदा मर्ज टूल को सेट करने के बाद, यह केवल जब आप हल करने के लिए संघर्ष करते हैं, तो git mergetool चलाने का मामला है।

Perforce से p4merge टूल एक बहुत अच्छा स्वसंपूर्ण मर्ज टूल है।

ऐसा लगता है कि नए जीआईटी संस्करण सीधे पी -4-आरगेयर का समर्थन करते हैं, इसलिए

 git config --global merge.tool p4merge 

आपके सभी की ज़रूरत होनी चाहिए, अगर p4merge.exe आपके रास्ते पर है सीएमडी या पथ को सेट करने की कोई ज़रूरत नहीं है

विंडोज 7 की तुलना में अधिक के लिए

 git config --global merge.tool bc3 git config --global mergetool.bc3.path "C:\Program Files (x86)\Beyond Compare 3\BCompare.exe" 

जैसा कि पहले से यहां उत्तर दिया गया है (और यहां और यहां ), mergetool इस को कॉन्फ़िगर करने के लिए कमांड है। एक अच्छा ग्राफ़िकल दृश्य के लिए मैं kdiff3 (GPL) सुझाता हूं।

मुझे विंडोज 7 पर msysGit का उपयोग करके अतिरिक्त उद्धरण छोड़ना पड़ा, यह सुनिश्चित नहीं है कि क्यों

 git config --global merge.tool p4merge git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED' 

यदि आप साइगविन के माध्यम से यह कर रहे हैं, तो आपको साइगपाथ का उपयोग करने की आवश्यकता हो सकती है:

 git config --global merge.tool p4merge git config --global mergetool.p4merge.cmd 'p4merge `cygpath -w $BASE` `cygpath -w $LOCAL` `cygpath -w $REMOTE` `cygpath -w $MERGED`' 

बाह, यह आखिरकार मेरे लिए काम किया (विंडोज 7 + साइगविन + टोर्टोइज़ मेर्ज):

.git / config में:

 cmd = TortoiseMerge.exe /base:$(cygpath -d \"$BASE\") /theirs:$(cygpath -d \"$REMOTE\") /mine:$(cygpath -d \"$LOCAL\") /merged:$(cygpath -d \"$MERGED\") 

टिप के लिए पिछले पोस्टर के लिए धन्यवाद का उपयोग करने के लिए साइगपाथ!

मैं WinMerge ( http://winmerge.org/ ) नामक ऐप का उपयोग अपने मैनुअल ( http://manual.winmerge.org/CommandLine.html ) से करता हूं

यह। स्क्रिप्ट है जो मुझे .gitconfig माध्यम से .gitconfig डायरेक्टिव से उपयोग करती है .gitconfig

 #!/bin/sh # using winmerge with git # replaces unix style null files with a newly created empty windows temp file file1=$1 if [ "$file1" == '/dev/null' ] || [ "$file1" == '\\.\nul' ] || [ ! -e "$file1" ] then file1="/tmp/gitnull" `echo "">$file1` fi file2=$2 if [ "$file2" == '/dev/null' ] || [ "$file2" == '\\.\nul' ] || [ ! -e "$file2" ] then file2="/tmp/gitnull" `echo "">$file2` fi echo diff : $1 -- $2 "C:\Program files (x86)\WinMerge\WinMergeU.exe" -e -ub -dl "Base" -dr "Mine" "$file1" "$file2" 

मूल रूप से जब एक रिक्त फ़ाइल में अंतर का परिणाम होता है और सही स्थान में एक नया अस्थायी फ़ाइल बनाता है तो उसके लिए बाश खाते हैं।

आप इन विकल्पों को भी जोड़ना चाह सकते हैं:

 git config --global merge.tool p4mergetool git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED' git config --global mergetool.p4mergetool.trustExitCode false git config --global mergetool.keepBackup false 

इसके अलावा, मुझे नहीं पता कि क्यों, लेकिन मिलन गार्डिन के जवाब से उद्धृत और स्लेश ने मेरे लिए चीजें खराब कर दीं

यदि कोई भी gvim को TortoiseGit पर उनके भिन्न उपकरण के रूप में उपयोग करना चाहता है, तो यह आपको बाहरी फ़िफ़ा टूल के पथ के लिए पाठ इनपुट में दर्ज करने की आवश्यकता है:

 path\to\gvim.exe -f -d -c "wincmd R" -c "wincmd R" -c "wincmd h" -c "wincmd J" 

IntelliJ IDEA (सामुदायिक संस्करण) के लिए 3- ~/.gitconfig पर्यावरण वातावरण में git mergetool कॉन्फ़िगरेशन ( ~/.gitconfig )

Cygwin

 [mergetool "ideamerge"] cmd = C:/Program\\ Files\\ \\(x86\\)/JetBrains/IntelliJ\\ IDEA\\ Community\\ Edition\\ 14.1.3/bin/idea.exe merge `cygpath -wa $LOCAL` `cygpath -wa $REMOTE` `cygpath -wa $BASE` `cygpath -wa $MERGED` [merge] tool = ideamerge 

Msys

 [mergetool "ideamerge"] cmd = "/c/Program\\ Files\\ \\(x86\\)/JetBrains/IntelliJ\\ IDEA\\ Community\\ Edition\\ 14.1.3/bin/idea.exe" merge `~/winpath.sh $LOCAL` `~/winpath.sh $REMOTE` `~/winpath.sh $BASE` `~/winpath.sh $MERGED` [merge] tool = ideamerge 

~ / Winpath.sh को एमएसआईएस पर विंडोज़ को पथ बदलने और स्टैक्सहोवरफ्लो पर एमएसआईएस पथ रूपांतरण सवाल से लिया जाता है

 #! /bin/sh function wpath { if [ -z "$1" ]; then echo "$@" else if [ -f "$1" ]; then local dir=$(dirname "$1") local fn=$(basename "$1") echo "$(cd "$dir"; echo "$(pwd -W)/$fn")" | sed 's|/|\\|g'; else if [ -d "$1" ]; then echo "$(cd "$1"; pwd -W)" | sed 's|/|\\|g'; else echo "$1" | sed 's|^/\(.\)/|\1:\\|g; s|/|\\|g'; fi fi fi } wpath "$@" 

मुझे गिटब विंडोज में difftool और mergetool के रूप में " SourceGear DiffMerge " को कॉन्फ़िगर करने के दो तरीके मिले।

कमांड प्रॉम्प्ट विंडो में निम्न आज्ञाओं को आपके .gitconfig अद्यतन करने के लिए GIT का उपयोग करें DiffMerge को अद्यतन करेगा:

 git config --global diff.tool diffmerge git config --global difftool.diffmerge.cmd 'C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"' git config --global merge.tool diffmerge git config --global mergetool.diffmerge.cmd 'C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe -merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"' 

[ या ]

अपने .gitconfig में निम्न पंक्तियां जोड़ें यह फ़ाइल आपकी होम डायरेक्टरी में सी: \ उपयोगकर्ता \ उपयोगकर्ता नाम होना चाहिए:

 [diff] tool = diffmerge [difftool "diffmerge"] cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\" [merge] tool = diffmerge [mergetool "diffmerge"] trustExitCode = true cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe -merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\" 

विलय और अंतर दोनों के लिए खिड़कियों पर चॉकलेटी का उपयोग करके, p4merge सेटअप करने के लिए, यहां एक नज़र डालें: https://gist.github.com/CamW/88e95ea8d9f0786d746a

यदि आपको SourceTree से p4merge खोलने में समस्या हो रही है तो आप स्थानीय कॉन्फ़िगरेशन फ़ाइल को MyRepo.git के अंतर्गत कॉन्फ़िगर नामांकित कर सकते हैं और किसी भी मर्ज कॉन्फ़िगरेशन को हटा सकते हैं। मेरे मामले में इसे खोलने की कोशिश कर रहा था जो मैंने अभी अनइंस्टॉल किया था