গিট: কেডিফ 3 কে একত্রীকরণ সরঞ্জাম এবং ডিফ সরঞ্জাম হিসাবে কনফিগার করবে


219

সম্প্রতি আমি গিটএক্সটেনশন ২.৪46 ব্যবহার করছিলাম তবে গিট সংস্করণটি হ'ল ১.৯.৪.msysgit.2। কেবল গিট কমান্ড ব্যবহার করতে ইচ্ছুক, আমি গিটএক্সটেনশনটি আনইনস্টল করেছি এবং গিট এবং কেডিফ 3 এর উপলভ্য সর্বশেষতম সংস্করণটি ইনস্টল করেছি

আমি যখন একত্রীকরণ করি এবং বিবাদ হয় তখন আমি নিম্নলিখিত কমান্ডটি চালিত করি:

$ git mergetool

তারপরে আমি বার্তাটি পেয়েছি:

মার্জ টুল কেডিফ 3 'কেডিফ 3' হিসাবে উপলভ্য নয়।

আমার ধারণা এটি অবশ্যই কেডিফ 3 পথে হবে by

পরিবেশ

  • ওএস: উইন্ডোজ 10
  • গিট 2.6.1.windows.1
  • কেডিফ 3 0.9.98 (64 বিট)

প্রশ্নাবলী:

  • আমি কমান্ডের জন্য .gitconfig ফাইলে কনফিগার করতে কি আছে $ git mergetoolসংস্করণের সাথে KDiff3 গুই খুলতে স্থানীয় , দূরবর্তী , বেস এবং মার্জ বিরোধ ফাইলের?

  • এটির ডিফার-টুল রয়েছে কীভাবে এটি ব্যবহার করতে কনফিগার করবেন?


সম্পর্কিত পোস্ট - গিটের সাধারণভাবে কীভাবে একটি ডিফ সরঞ্জামের কনফিগার করতে হয় ।
আরবিটি

উত্তর:


374

এই সাইটগুলি, খুব সহায়ক প্রায়, mergetool এবং difftool । আমি বিশ্বব্যাপী কনফিগারেশন ব্যবহার করেছি, তবে সমস্যা ছাড়াই সংগ্রহস্থল দ্বারা ব্যবহার করা যেতে পারে। আপনাকে কেবল নিম্নলিখিত কমান্ডগুলি কার্যকর করতে হবে:

git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global mergetool.kdiff3.trustExitCode false

git config --global diff.guitool kdiff3
git config --global difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global difftool.kdiff3.trustExitCode false

trustExitCodeডিফ সরঞ্জামগুলি যখন ফিরে আসে তখন বিকল্পটি ব্যবহার আপনি কী করতে চান তার উপর নির্ভর করে। ডকুমেন্টেশন থেকে :

গিট-ডিফ্ট্টোল প্রতিটি ফাইলে স্বতন্ত্রভাবে একটি ডিফ সরঞ্জামের জন্য প্রার্থনা করে। ডিফ সরঞ্জাম দ্বারা প্রতিবেদন করা ত্রুটিগুলি ডিফল্টরূপে উপেক্ষা করা হয়। ব্যবহার করুন --trust-প্রস্থান-কোড করা Git-difftool প্রস্থান একটি প্রার্থনা পরিবর্তন টুল আয় একটি নন-জিরো প্রস্থান কোড।


5
তবুও, কেন আমি গিডি-ডিফ্টলকে চাইব যদি কেডিফ 3 ব্যর্থ হয়?
ডেভিড টরেস

9
আমার কাছে ভিজ্যুয়াল স্টুডিও 2015 দ্বারা স্বীকৃত git config --global --add diff.guitool kdiff3git config --global --add diff.tool kdiff3
গিলিয়াম রেমন্ড

2
@ ডেভিডটিরেস সম্ভবত উইন্ডোজ সরঞ্জামগুলি খারাপভাবে আচরণ করার কারণে (যা সাফল্যের সাথে শূন্য-কোড সহ প্রস্থান করে) এটি সবার জন্য নষ্ট করে দেয়।
ম্যাথু ফ্ল্যাশেন

2
রেফারেন্সড ডক্স অনুসারে ট্র্যাক্সেটকোডকে মিথ্যা হিসাবে সেট করা অপ্রয়োজনীয়, যেহেতু ডিফল্টটিকে যেভাবেই এড়ানো উচিত।
ম্যাট উইলকি

7
আফাইক, --addএকাধিকবার অনুরোধ করা হলে দ্বিতীয় বা তৃতীয় এন্ট্রি যুক্ত করবে। এটি পরে ঠিক করা শক্ত, কারণ এটি কেবল এটিকে দিয়ে সরানো যায় না --remove। শুধু ছাড়া মান নির্ধারণ --addকরা ঠিক হবে।
টমাস ওয়েলারের

58

কেবল @ জোসেফের উত্তরটি প্রসারিত করতে :

এই আদেশগুলি প্রয়োগ করার পরে আপনার গ্লোবাল .gitconfigফাইলে নিম্নলিখিত লাইন থাকবে (প্রক্রিয়াটি দ্রুত করার জন্য আপনি সেগুলি কেবল ফাইলটিতে অনুলিপি করতে পারেন) :

[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = C:/Program Files/KDiff3/kdiff3.exe
    trustExitCode = false
[diff]
    guitool = kdiff3
[difftool "kdiff3"]
    path = C:/Program Files/KDiff3/kdiff3.exe
    trustExitCode = false

@ Alex78191, আমার উত্তরটি জোসেফের উত্তরকে প্রতিবিম্বিত করে এবং সেখানে আপনি এই সেটিং সম্পর্কে আরও বিশদ জানতে পারেন।
ইগোর কুস্তভ

5
এই অধিকার পেতে আমার অনেক সময় লেগেছে। 2 টি জিনিস আমাকে বিপথগামী করেছিল: (1) .gitconfigআমি যে ফাইলটি সম্পাদনা করছি সেটি ব্যবহার করা হয়নি was লোড হচ্ছে এমন একটি (গুলি) সনাক্ত করার জন্য স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / ২১১৪১১১১/২ দেখুন । (২) মিশ্রণ এবং মিল না cmd =এবং path =গিটকনফাইগ, টিএল; ডিআর: সিএমডি মুছুন এবং কেবল পথটি ব্যবহার করুন
ম্যাট উইলকি ২

1
এখন গিট বাশ ব্যবহার করুন .... গিফ ডিফ্টল <ফাইল>> বা সরল গিট ডিফ্টল আপনি কেবল সেট করেছেন ডিফ গুই কেডিফ 3 চালাতে।
বিবেক

32

ম্যাক ব্যবহারকারীদের জন্য

এখানে @ জোসেফের গৃহীত উত্তর, তবে ডিফল্ট ম্যাকের সাথে ইনস্টল করার পাথ অবস্থান রয়েছে kdiff3

(নোট করুন যে আপনি এটি অনুলিপি এবং পেস্ট করতে পারেন এবং এটি একবারে চালাতে পারেন)

git config --global --add merge.tool kdiff3 
git config --global --add mergetool.kdiff3.path  "/Applications/kdiff3.app/Contents/MacOS/kdiff3" 
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "/Applications/kdiff3.app/Contents/MacOS/kdiff3"
git config --global --add difftool.kdiff3.trustExitCode false

4
আপনি --addযদি কমান্ডটি দু'বার চালনা করেন তবে এর ফলে 2 টি কনফিগার এন্ট্রি হতে পারে তা ব্যবহার করবেন না । এটি পরিষ্কার করছে এমন গোলমাল, কারণ আপনি আর কোনও একক প্রবেশকে মুছতে পারবেন না। Git-scm.com/docs/git-config দেখুন : "একটি বিকল্পে একাধিক লাইন যুক্ত করা যেতে পারে"
টমাস ওয়েলারের

11

ভাল, সমস্যাটি হ'ল গিট% PATH% তে কেডিফ 3 খুঁজে পাবে না।

একটি টিপিক্যাল ইউনিক্স ইনস্টলেশন সব এক্সেকিউটেবল বিভিন্ন সুপরিচিত অবস্থানগুলি (রক্ষিত /bin/, /usr/bin/, /usr/local/bin/, ইত্যাদি), এবং এক কেবল একটি শেল প্রসেসর তার নাম টাইপ (যেমন দ্বারা একটি প্রোগ্রাম ডাকা যাবে cmd.exe:))।

মাইক্রোসফ্ট উইন্ডোজে প্রোগ্রামগুলি সাধারণত ডেডিকেটেড পাথগুলিতে ইনস্টল করা থাকে যাতে আপনি কেবল kdiff3একটি cmdসেশনে টাইপ করতে না পারেন এবং কেডিফ 3 চালিয়ে যেতে পারেন।

শক্ত সমাধান: আপনার গিটকে বলা উচিত যে কেডিডিফ 3 কোথায় পাবেন তার সম্পূর্ণ পথ নির্দিষ্ট করে দিয়ে kdiff3.exe। দুর্ভাগ্যক্রমে, গিট তার কনফিগারেশনে পাথের স্পেসিফিকেশনের ফাঁকা স্থান পছন্দ করে না, তাই শেষ বার যখন আমার এটির প্রয়োজন ছিল, আমি সেই প্রাচীন "সি: gra প্রগড়া ~ 1 ... \ kdiff3.exe" দিয়ে শেষ করেছি যেন দেরি হয়ে গেছে 1990 এর দশক :)

সহজ সমাধান: আপনার কম্পিউটার সেটিংস সম্পাদনা করুন এবং% PATH% এ kdiff3.exe সহ ডিরেক্টরি অন্তর্ভুক্ত করুন। তারপরে যদি আপনি এটির নামটি cmd.exe থেকে শুরু করতে পারেন এবং পরীক্ষা করুন তবে গিট চালান।


8

আমার কমান্ড লাইন প্যারামিটারগুলি যুক্ত করা দরকার ছিল বা কেডিফ 3 কেবল ফাইল ছাড়াই খালি হবে এবং আমাকে বেস, স্থানীয় এবং দূরবর্তী স্থানের জন্য অনুরোধ করবে। আমি টরটোইএইচজি সরবরাহিত সংস্করণটি ব্যবহার করেছি ।

অতিরিক্ত হিসাবে, আমার ভাল পুরানো ডস 8.3 ফাইলের নামগুলি অবলম্বন করা দরকার।

[merge]
    tool = kdiff3

[mergetool "kdiff3"]
    cmd = /c/Progra~1/TortoiseHg/lib/kdiff3.exe $BASE $LOCAL $REMOTE -o $MERGED

তবে এটি এখন সঠিকভাবে কাজ করে।


6

সংশোধনের ক্রিস ' উত্তর , গীত 2.20 (Q4 ই 2018), সঠিক কমান্ড দিয়ে শুরু git mergetoolহতে হবে

git config --global merge.guitool kdiff3 

কারণ "" git mergetool" " " " "" --[no-]gui"বিকল্পগুলি " " নিতে " "শিখেছেন git difftool

কমিট সি 217 বি 93 দেখুন , কমেন্ট 57ba181 , কমেন্ট 063f2bd (24 অক্টোবর 2018) ডেন্টন লিউDenton-L দ্বারা ( )
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 87c15d1 , 30 অক্টোবর 2018)

mergetool: -g/--[no-]guiযুক্তি হিসাবে গ্রহণ করুন

কিভাবে সঙ্গে সঙ্গতিপূর্ণ difftoolএকটি গ্রহণ -g/--[no-]guiবিকল্প, মেক mergetoolঅর্ডার ব্যবহার করতে আপনাকে অবশ্যই একই বিকল্প গ্রহণ merge.guitoolপরিবর্তে ডিফল্ট mergetool এটি পরিবর্তনশীল merge.tool


5

(ডাব্লুএসএল গিট থেকে কীভাবে ডিডিএফ 3 কীভাবে ব্যবহার করতে হবে তা জানার চেষ্টা করার সময় আমি এখানেই শেষ হয়েছি এবং চূড়ান্ত টুকরোগুলি পেয়েছি, সুতরাং উত্তরটি সন্ধান করার সময় আমি অন্য কারও জন্যও আমার সমাধান পোস্ট করব)

ডাব্লুএসএল গিটের জন্য ডিডিএফ / মার্জ টুল হিসাবে কীভাবে কেডিফ 3 ব্যবহার করবেন

উইন্ডোজ আপডেট 1903 এর সাহায্যে এটি অনেক সহজ; কেবল ডাব্লুএসপ্যাথ ব্যবহার করুন এবং উইন্ডোজ থেকে ডাব্লুএসএল-তে টিএমপি ভাগ করার দরকার নেই যেহেতু উইন্ডোজ পক্ষের এখন ডাব্লুএসএল ফাইল সিস্টেমটিতে \ wsl via এর মাধ্যমে অ্যাক্সেস রয়েছে:

[merge]
    renormalize = true
    guitool = kdiff3
[diff]
    tool = kdiff3
[difftool]
    prompt = false
[difftool "kdiff3"]
    # Unix style paths must be converted to windows path style
    cmd = kdiff3.exe \"`wslpath -w $LOCAL`\" \"`wslpath -w $REMOTE`\"
    trustExitCode = false
[mergetool]
    keepBackup = false
    prompt = false
[mergetool "kdiff3"]
    path = kdiff3.exe
    trustExitCode = false

উইন্ডোজ আপডেট 1903 এর আগে

উইন্ডোজ 10 এ ডাব্লুএসএল-এ গিটের জন্য ডিফ / মেশিন সরঞ্জাম হিসাবে ইনস্টল করা কেডিফ 3 ব্যবহারের পদক্ষেপ:

  1. উইন্ডোজ পথে kdiff3 ইনস্টলেশন ডিরেক্টরি যুক্ত করুন।
  2. ডাব্লুএসএলএনভি উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে টিএমপি যুক্ত করুন (ডাব্লুএসএলএনভি = টিএমপি / আপ)। টিএমপি ডির গিটার দ্বারা অস্থায়ী ফাইলগুলির জন্য ব্যবহৃত হবে, আগের ফাইলগুলির পুনর্বিবেচনার মতো, তাই এটি কাজ করার জন্য পাথ অবশ্যই উইন্ডোজ ফাইল সিস্টেমে থাকতে হবে।
  3. টিএমপিডিআইআর কে .বাশার্কে টিএমপিতে সেট করুন:
# If TMP is passed via WSLENV then use it as TMPDIR
[[ ! -z "$WSLENV" && ! -z "$TMP" ]] && export TMPDIR=$TMP
  1. Kdiff3 কল করার সময় উইন্ডোজ-পথে ইউনিক্স-পাথকে রূপান্তর করুন। আমার .gitconfig এর নমুনা:
[merge]
    renormalize = true
    guitool = kdiff3
[diff]
    tool = kdiff3
[difftool]
    prompt = false
[difftool "kdiff3"]
    #path = kdiff3.exe
    # Unix style paths must be converted to windows path style by changing '/mnt/c/' or '/c/' to 'c:/'
    cmd = kdiff3.exe \"`echo $LOCAL | sed 's_^\\(/mnt\\)\\?/\\([a-z]\\)/_\\2:/_'`\" \"`echo $REMOTE | sed 's_^\\(/mnt\\)\\?/\\([a-z]\\)/_\\2:/_'`\"
    trustExitCode = false
[mergetool]
    keepBackup = false
    prompt = false
[mergetool "kdiff3"]
    path = kdiff3.exe
    trustExitCode = false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.