আমি যখন "গিট ডিফ" করি তখন আমি কীভাবে পাশাপাশি পার্থক্য পেতে পারি?


163

আমি যখন "গিট ডিফ" টাইপ করি, তখন আমি "ডিফ-ই" এর মতো পাশাপাশি পাশের পার্থক্য দেখতে চাই বা "কেডিফ 3" এর মতো ইন্টারেক্টিভ ডিফ সরঞ্জামটিতে ডিফটি প্রদর্শন করতে চাই। কিভাবে এই কাজ করা যেতে পারে?




উত্তর:


89

যদিও গিটের ডিফের অভ্যন্তরীণ বাস্তবায়ন রয়েছে, আপনি তার পরিবর্তে একটি বাহ্যিক সরঞ্জাম সেট আপ করতে পারেন।

বাহ্যিক ডিফ সরঞ্জামটি নির্দিষ্ট করার জন্য দুটি ভিন্ন উপায় রয়েছে:

  1. GIT_EXTERNAL_DIFFএবং সেটGIT_DIFF_OPTS বিভিন্ন পরিবেশের।
  2. এর মাধ্যমে বাহ্যিক ডিফ সরঞ্জামটি কনফিগার করা git config

আরো দেখুন:

একটি করার সময় git diff, গিট উপরের পরিবেশের ভেরিয়েবল এবং এর উভয় সেটিংস পরীক্ষা করে.gitconfig ফাইল ।

ডিফল্টরূপে, গিট নিম্নলিখিত সাতটি আর্গুমেন্টটি ডিফার প্রোগ্রামে পাস করে:

path  old-file  old-hex old-mode  new-file  new-hex new-mode

আপনার সাধারণত পুরানো-ফাইল এবং নতুন-ফাইলের পরামিতিগুলি প্রয়োজন। অবশ্যই বেশিরভাগ ডিফ সরঞ্জামগুলি আর্গুমেন্ট হিসাবে কেবল দুটি ফাইলের নাম নেয়। এর অর্থ হ'ল আপনাকে একটি ছোট্ট র‍্যাপার-স্ক্রিপ্ট লিখতে হবে, যা গিট স্ক্রিপ্টটিতে সরবরাহ করে এমন আর্গুমেন্ট গ্রহণ করে এবং আপনার পছন্দের বাহ্যিক গিট প্রোগ্রামে তাদের হাতে দেয়।

ধরা যাক আপনি নিজের মোড়ক-স্ক্রিপ্টটি নীচে রেখেছেন ~/scripts/my_diff.sh:

#!/bin/bash
# un-comment one diff tool you'd like to use

# side-by-side diff with custom options:
# /usr/bin/sdiff -w200 -l "$2" "$5" 

# using kdiff3 as the side-by-side diff:
# /usr/bin/kdiff3 "$2" "$5"

# using Meld 
/usr/bin/meld "$2" "$5"

# using VIM
# /usr/bin/vim -d "$2" "$5"

তারপরে আপনাকে সেই স্ক্রিপ্টটি কার্যকর করা দরকার:

chmod a+x ~/scripts/my_diff.sh

তারপরে আপনাকে গিটকে জানাতে হবে যে কীভাবে এবং কোথায় আপনার কাস্টম ডিফ র‌্যাপার স্ক্রিপ্টটি পাওয়া যায়। এটি করার জন্য আপনার কাছে তিনটি পছন্দ রয়েছে: (আমি .gitconfig ফাইল সম্পাদনা করতে পছন্দ করি)

  1. ব্যবহার GIT_EXTERNAL_DIFF,GIT_DIFF_OPTS

    উদাহরণস্বরূপ আপনার .bashrc বা .bash_profile ফাইলটিতে আপনি সেট করতে পারেন:

    GIT_EXTERNAL_DIFF=$HOME/scripts/my_diff.sh
    export GIT_EXTERNAL_DIFF
    
  2. ব্যবহার git config

    আপনার র‍্যাপার স্ক্রিপ্টটি কোথায় পাওয়া যাবে তা নির্ধারণ করতে "গিট কনফিগারেশন" ব্যবহার করুন:

    git config --global diff.external ~/scripts/my_diff.sh
    
  3. আপনার সম্পাদনা ~/.gitconfig ফাইল

    ~/.gitconfigএই লাইনগুলি যুক্ত করতে আপনি নিজের ফাইলটি সম্পাদনা করতে পারেন :

    [diff]
      external = ~/scripts/my_diff.sh
    

বিঃদ্রঃ:

একইভাবে আপনার কাস্টম ডিফ সরঞ্জামটি ইনস্টল করতে, আপনি একটি কাস্টম মার্জ-সরঞ্জামও ইনস্টল করতে পারেন, যা মার্জটিকে আরও ভাল রূপে সহায়তা করার জন্য একটি ভিজ্যুয়াল মার্জিং সরঞ্জাম হতে পারে। (progit.org পৃষ্ঠা দেখুন)

দেখুন: http://fredpalma.com/518/visual-diff-and- নিম- tool/ এবং https://git-scm.com/book/en/v2/ কাস্টমাইজিং- গিট- গিট- কনফিগারেশন


1
এটি কি গিট টার্মিনাল রঙ ধারণ করে?
শ্রীধর সারনোবাত

3
এটি দুর্দান্ত, তবে এটি প্রতিটি ফাইলের জন্য একটি নতুন দর্শকের প্রবর্তন করে। একীভূত পার্থক্য তৈরির যে কোনও উপায়ে, বলুন meld?
এইচআরজে

2
@ টিলো আমি ইম হিসাবে ভিমের জন্য ত্রুটি পাচ্ছি: সতর্কতা: আউটপুট কোনও টার্মিনালের নয়
মৃত প্রোগ্রামার

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

163

গিট ডিফ্টল চেষ্টা করুন

git difftoolপরিবর্তে ব্যবহার করুন git diff। আপনি আর ফিরে যেতে পারবেন না।

উদাহরণ ব্যবহারের জন্য যোগ করুন:

এখানে অন্য স্ট্যাকওভারফ্লোটির একটি লিঙ্ক রয়েছে যা সম্পর্কে কথা বলা হয়েছে git difftool: আমি কীভাবে আমার পছন্দসই ডিফ সরঞ্জাম / দর্শকের সাথে 'গিট ডিফ' আউটপুট দেখতে পারি?

এর নতুন সংস্করণগুলির জন্য git, difftoolকমান্ডটি বাইরের বাইরে অনেকগুলি বহিরাগত ডিফ সরঞ্জামকে সমর্থন করে। উদাহরণস্বরূপ vimdiffঅটো সমর্থিত এবং কমান্ড লাইন থেকে এটি খুলতে পারে:

cd /path/to/git/repo
git difftool --tool=vimdiff

অন্যান্য সমর্থিত বাহ্যিক ডিফ সরঞ্জামগুলি এখানে তালিকাভুক্ত git difftool --tool-helpকরা হয় একটি উদাহরণ আউটপুট:

'git difftool --tool=<tool>' may be set to one of the following:
        araxis
        kompare
        vimdiff
        vimdiff2

The following tools are valid, but not currently available:
        bc3
        codecompare
        deltawalker
        diffuse
        ecmerge
        emerge
        gvimdiff
        gvimdiff2
        kdiff3
        meld
        opendiff
        tkdiff
        xxdiff

34
অথবা আপনি পেলে ফিরে যাবেন This message is displayed because 'diff.tool' is not configured.। সম্ভবত এই জিনিসটি কীভাবে কনফিগার করতে হয় তার সাথে উত্তরকে আপডেট করুন, যাতে এটি টার্মিনালে পাশাপাশি পাশাপাশি পৃথকভাবে প্রদর্শন করে, যা ওপি চেয়েছিল? জিএসআইআই সরঞ্জামগুলি রিমোট সার্ভারে যথেষ্ট অকেজো যেখানে আপনি ssh ব্যবহার করে সংযোগ করছেন।
পেটর

1
মজার বিষয়, যদিও আমি মনে করি না এসএসএইচ করার সময় আমার ব্যক্তিগতভাবে কখনও গিট ব্যবহার করা দরকার ছিল। ডিভিসিএস সম্পর্কে একবার চমৎকার জিনিসগুলি বিতরণের অংশ: কমপক্ষে আমার পরিবেশে আমি স্থানীয় যে কোনও রেপো ঘুরে দেখতে চাইছি স্থানীয়ভাবে ক্লোন করার ঝামেলা কখনও নয়।
ম্যাট বল

1
আমার কনফিগ মধ্যে অন্তত, git difftoolসঙ্গে vimdiffসবসময় দুই ফাইল / বাফার সঠিকভাবে লাইন নেই।
রোহমার

1
উত্তম, এবং তাই নীচে উত্তর তালিকার নীচে: ওআই git difftool -yটিডিডিফ প্রম্পট রোধ করার জন্য ব্যবহার করুন
haর্ষvchawla

সম্পর্কিত: আপনার git difftoolউইন্ডোজ ও লিনাক্সে মেল্ড তৈরি করুন
গ্যাব্রিয়েল স্ট্যাপলস

55

আপনি চেষ্টা করতে পারেন git diff --word-diff। এটি হুবহু পাশাপাশি না, তবে কোনওরকম ভাল, যাতে আপনি এটি আপনার আসল পাশে পাশাপাশি প্রয়োজনের তুলনায় পছন্দ করতে পারেন।


12
এই সবচেয়ে সহজ উপায়। এর চেয়ে আরও ভাল কিgit diff --word-diff=color
রল্ফ

@ রোল্ফ --word-diff=colorআমাকে একটি অবৈধ বিকল্পের ত্রুটি দেয়। এটি কোন সংস্করণে চালু হয়েছিল?
হলোওয়ে

@ ট্রেনগোট আমি গিট ১.7.৯ চালাচ্ছি যা ২২/২০২২২২ থেকে
রল্ফ

4
@ রলফের ডিফল্ট ইনস্টল করা সংস্করণটি এখানে ১. 1..১। পার্থক্য ব্যাখ্যা করতে পারে। git diff --color-wordsকাজ করে
ফাঁকা 10

4
হ্যাঁ, git diff --color-wordsআধুনিক গিট সংস্করণগুলিতে যাওয়ার উপায়।
ভ্যাসিলিনভিকভ

41

ydiff

পূর্বে বলা হয় cdiff, এই সরঞ্জামটি পাশাপাশি , ইনক্রিমেন্টাল এবং রঙিন পার্থক্য প্রদর্শন করতে পারে ।

না করে বরং git diffকরুন:

ydiff -s -w0

এটি ydiffপার্থক্য সহ প্রতিটি ফাইলের জন্য পাশাপাশি পাশের প্রদর্শন মোডে চালু হবে ।

এর সাথে ইনস্টল করুন:

python3 -m pip install --user ydiff

-অথবা-

brew install ydiff

জন্য git log, আপনি ব্যবহার করতে পারেন:

ydiff -ls -w0

-w0আপনার টার্মিনাল প্রস্থটি স্বয়ংক্রিয়ভাবে সনাক্ত করে। বিশদ এবং ডেমো জন্য ydiff গিটহাব সংগ্রহস্থল পৃষ্ঠা দেখুন ।

গিট 2.18.0 এ পরীক্ষিত, ydiff 1.1।


@ রেইনএরেট: আইসিডিফের সমতুল্য কীভাবে করবেন তা আপনি ব্যাখ্যা করতে পারেন git diff | cdiff -s?
einpoklum

কেবল ydiff -sএকটি গিট / এসএনএন / এইচজি ওয়ার্কস্পেস থেকে চালান , আপনাকে পাইপ
লাগাতে

আপনি যদি গিটের ইতিহাসের মাধ্যমে কোনও নির্দিষ্ট ফাইলের মধ্যে পার্থক্যটি সীমাবদ্ধ করতে চান cd <git repo>এবং তারপরে চালানydiff -ls <path/to/file>
16:47

22

আপনি নীচে diffব্যবহার করে পাশাপাশি পাশাপাশি করতে পারেন sdiff:

$ git difftool -y -x sdiff  HEAD^ | less

যেখানে HEAD^এমন একটি উদাহরণ যেখানে আপনি যেটির বিপরীতে চান তার সাথে প্রতিস্থাপন করা উচিত।

আমি এই সমাধান এখানে পেয়েছি যেখানে অন্যান্য বেশ কয়েকটি পরামর্শও রয়েছে। যাইহোক, এটির একটি উত্তর ওপির প্রশ্নটি সংক্ষিপ্তভাবে এবং পরিষ্কার করে দিয়েছে।

আর্গুমেন্টের ব্যাখ্যার জন্য গিট-ডিফ্টল লোকটি দেখুন ।


বোর্ডে মন্তব্যগুলি গ্রহণ করে, আপনি git sdiffনিম্নলিখিত এক্সিকিউটেবল স্ক্রিপ্ট লিখে একটি হ্যান্ডি কমান্ড তৈরি করতে পারেন :

#!/bin/sh
git difftool -y -x "sdiff -w $(tput cols)" "${@}" | less

এটি হিসাবে /usr/bin/git-sdiffএবং chmod -xএটি সংরক্ষণ করুন । তারপরে আপনি এটি করতে সক্ষম হবেন:

$ git sdiff HEAD^

আমি সাধারণত "$ git difftool -x 'sdiff -s -w 240'" করি (বা স্ক্রিনের প্রস্থ যাই হোক না কেন) / / যখন আমি একই লাইনগুলি দমন করতে চাই এবং কেবল একটি ফাইল আছে (অন্যথায় আমি ভিমিডিফ করি)
হিদেকাএআইআই

1
@HidekiAI আমি এটা প্রত্যেক সময় প্রস্থ টার্মিনাল টাইপ করতে ব্যাথা, তাই আমি ব্যবহার খুঁজে tput colsপরিবর্তে, উদাহরণস্বরূপ: git difftool -x "sdiff -s -w $(tput cols)"
জুমে

এটি রঙের পরিবর্তনগুলি হাইলাইট করতে পারে? এই মুহূর্তে মনে হচ্ছে আসলে আমাদের কী পরিবর্তন হচ্ছে তা চিহ্নিত করতে আমাদের চোখ ব্যবহার করতে হবে
নন

একটি সুন্দর রঙিন প্রদর্শন পেতে আইসিডিফ সহ এসডিটিফের বিকল্প দিন।
গ্রেগ

10
export GIT_EXTERNAL_DIFF='meld $2 $5; echo >/dev/null'

তারপরে সহজভাবে:

git diff

1
ld মেলানো ' কাজ করে! এবং এটি একীভূত উইন্ডোতে সমস্ত পরিবর্তন দেখায়।
এইচআরজে

@HRJ যে পুরোপুরি কাজ করে! এত সহজ ও ব্যবহারিক :)
waldyrious

9

আপনি যদি গিটহাবকে জড়িত না করে কোনও ব্রাউজারে পাশাপাশি পাশাপাশি দেখতে চান তবে আপনি গিট ওয়েবডিফ উপভোগ করতে পারবেন , যার জন্য একটি ড্রপ-ইন প্রতিস্থাপন git diff:

$ pip install webdiff
$ git webdiff

এটি traditionalতিহ্যবাহী জিইউআই ডিফ্টলগুলিতে অনেকগুলি সুবিধা দেয় যেমন tkdiffএটি আপনাকে সিনট্যাক্স হাইলাইট করতে এবং চিত্রের বিভিন্নতা প্রদর্শন করতে পারে।

এটি সম্পর্কে এখানে আরও পড়ুন ।


7

আমি ব্যবহার colordiff

ম্যাক ওএস এক্সে এটি দিয়ে ইনস্টল করুন

$ sudo port install colordiff

লিনাক্সে সম্ভবত apt get install colordiffবা এর মতো কিছু রয়েছে যা আপনার ডিসট্রোর উপর নির্ভর করে।

তারপর:

$ git difftool --extcmd="colordiff -ydw" HEAD^ HEAD

অথবা একটি উপনাম তৈরি করুন

$ git alias diffy "difftool --extcmd=\"colordiff -ydw\""

তারপরে আপনি এটি ব্যবহার করতে পারেন

$ git diffy HEAD^ HEAD

আমি এটিকে "ডিফাইফ" বলেছি কারণ ইউনিক্সে diff -yপাশাপাশি রয়েছে আলাদা । কলর্ডিফ আরও সুন্দর রঙ যুক্ত করে are বিকল্পটিতে -ydw, এটি yপাশাপাশি রয়েছে, wসাদা স্থানগুলিকে উপেক্ষা করা হবে এবং dন্যূনতম পার্থক্যের উত্পাদন করা হবে (সাধারণত আপনি পৃথক হিসাবে আরও ভাল ফলাফল পাবেন)


প্রম্পট -yএড়ানোর জন্য যোগ করুন Launch 'colordiff' [Y/n]:
বেনি চেরনিয়াভস্কি-পাসকিন

তুমি কি নিশ্চিত git alias diffy "difftool --extcmd=\"colordiff -ydw\""? এটা করা উচিত নয় git config --global alias.diffy "difftool --extcmd=\"colordiff -ydw\""?
অবিচ্ছিন্নতা

6

ইউনিক্সের জন্য, ন্যায় gitএবং অন্তর্নির্মিত সংমিশ্রণ diff:

git show HEAD:path/to/file | diff -y - path/to/file

অবশ্যই আপনি অন্য কোনও গিট রেফারেন্সের সাথে হেডকে প্রতিস্থাপন করতে পারেন এবং আপনি সম্ভবত -W 170ডিফ কমান্ডের মতো কিছু যুক্ত করতে চান ।

এটি ধরে নিয়েছে যে আপনি কেবল আপনার ডিরেক্টরি সামগ্রীর সাথে অতীত প্রতিশ্রুতি দিয়ে তুলনা করছেন। দুটি কমিটের মধ্যে তুলনা করা আরও জটিল। যদি আপনার শেল হয় তবে bashআপনি "প্রক্রিয়া বিকল্প" ব্যবহার করতে পারেন:

diff -y -W 170 <(git show REF1:path/to/file) <(git show REF2:path/to/file)

কোথায় REF1এবং REF2গিট রেফারেন্সগুলি - ট্যাগ, শাখা বা হ্যাশ।


ধন্যবাদ - আপনার কমান্ডটি 'গিট শো হেড: পাথ / টু / ফাইল' ছিল যা আমার নিজের সমাধান নিয়ে আসতে হয়েছিল, 'ভিমডিফিফ <(গিট শো হেড: পাথ / টু / ফাইল) পাথ / টু / ফাইল'। বিটগুলি এখনও সঠিকভাবে রেখাযুক্ত নয়, তবে এটি এখনই আমার সেরা সমাধান।
talexb

5

আমি ব্যক্তিগতভাবে সত্যিই আইসিডিফ পছন্দ করি !

আপনার উপর হন, তাহলে Mac OS Xসঙ্গে HomeBrew, শুধু কি brew install icdiff

ফাইলের লেবেলগুলি সঠিকভাবে পেতে, পাশাপাশি অন্যান্য দুর্দান্ত বৈশিষ্ট্যগুলি পেতে আমার মধ্যে রয়েছে ~/.gitconfig:

[pager]
    difftool = true
[diff]
    tool = icdiff
[difftool "icdiff"]
    cmd = icdiff --head=5000 --highlight --line-numbers -L \"$BASE\" -L \"$REMOTE\" \"$LOCAL\" \"$REMOTE\"

এবং আমি এটি ব্যবহার করি: git difftool


3

আমি যখন পার্থক্যগুলি সনাক্ত করতে গিট বিল্টিন পদ্ধতি ব্যবহারের জন্য দ্রুত উপায় অনুসন্ধান করছিলাম তখন এই প্রশ্নটি প্রকাশিত হয়েছিল। আমার সমাধানের মানদণ্ড:

  • দ্রুত প্রারম্ভ, প্রয়োজনীয় অন্তর্নির্মিত বিকল্পগুলি
  • এক্সএমএল, বিভিন্ন প্রোগ্রামিং ভাষা সহজেই অনেকগুলি ফর্ম্যাট পরিচালনা করতে পারে
  • বড় টেক্সটফাইলে ছোট কোড পরিবর্তনগুলি দ্রুত সনাক্ত করুন

গিটে রঙ পেতে আমি এই উত্তরটি পেয়েছি ।

লাইন ডিফের পরিবর্তে পাশাপাশি পার্থক্য পেতে আমি নীচের প্যারামিটারগুলির সাথে এমবি 14 এর উত্তরের উত্তরটি টুইট করেছি :

$ git diff --word-diff-regex="[A-Za-z0-9. ]|[^[:space:]]"

আপনি যদি পছন্দ না করেন তবে অতিরিক্ত [- বা {+ বিকল্পটি --word-diff=colorব্যবহার করা যেতে পারে।

$ git diff --word-diff-regex="[A-Za-z0-9. ]|[^[:space:]]" --word-diff=color

এটি জেসন এবং এক্সএমএল পাঠ্য এবং জাভা কোড উভয়ের সাথেই সঠিক তুলনা করতে সহায়তা করেছে।

সংক্ষিপ্ত --word-diff-regexআকারে বিকল্পটি লাইন পরিবর্তনের সাথে বড় ফাইলগুলির মাধ্যমে ব্রাউজ করার সময় স্ট্যান্ডার্ড লাইন ডিফের তুলনায় পাশের উত্স কোডের অভিজ্ঞতার সাথে রঙিন হয়ে ওঠার জন্য রঙ সেটিংসের সাথে একসাথে সহায়ক দৃশ্যমানতা দেয়।


3

আরও কয়েকজন ইতিমধ্যে গিট পাশাপাশি পাশাপাশি আলাদা আলাদা করার জন্য সিডিফ উল্লেখ করেছেন তবে কেউই এর সম্পূর্ণ বাস্তবায়ন দেয়নি।

সিডিফ সেটআপ করুন:

git clone https://github.com/ymattw/cdiff.git
cd cdiff
ln -s `pwd`/cdiff ~/bin/cdiff
hash -r # refresh your PATH executable in bash (or 'rehash' if you use tcsh)
        # or just create a new terminal

এই লাইনগুলি সন্নিবেশ করান Edit / .gitconfig সম্পাদনা করুন:

[pager]
        diff = false
        show = false

[diff]
        tool = cdiff
        external = "cdiff -s $2 $5 #"

[difftool "cdiff"]
        cmd = cdiff -s \"$LOCAL\" \"$REMOTE\"

[alias]
        showw = show --ext-dif

ডিফের সাথে কাজ করার জন্য সিডিফের জন্য পেজার অফ প্রয়োজন, এটি মূলত পেজার হ'ল এটি ঠিক আছে। ডিফ্টল এই সেটিংস নির্বিশেষে কাজ করবে।

শো উপন্যাসটি প্রয়োজন কারণ গিট শো কেবল আর্গুমেন্টের মাধ্যমে বাহ্যিক ডিফ সরঞ্জামগুলি সমর্থন করে।

পার্থক্যযুক্ত বাহ্যিক কমান্ডের শেষে '#' গুরুত্বপূর্ণ। গিটের ডিফ কমান্ডটি ডিফ কমান্ডে একটি $ @ (সমস্ত উপলব্ধ ডিফ ভেরিয়েবল) যুক্ত করে তবে আমরা কেবল দুটি ফাইলের নাম চাই। সুতরাং আমরা এই দু'টিকে স্পষ্টভাবে call 2 এবং $ 5 দিয়ে ডেকে আছি এবং তারপরে hide @ কে কোনও মন্তব্যের পিছনে লুকিয়ে রাখি যা অন্যথায় সিডিফকে বিভ্রান্ত করবে। দেখে মনে হচ্ছে এমন একটি ত্রুটির ফলাফল:

fatal: <FILENAME>: no such path in the working tree
Use 'git <command> -- <path>...' to specify paths that do not exist locally.

গিট কমান্ডগুলি এখন পাশাপাশি পাশাপাশি আলাদা করে তোলে:

git diff <SHA1> <SHA2> 
git difftool <SHA1> <SHA2>
git showw <SHA>

সিডিফ ব্যবহার:

'SPACEBAR' - Advances the page of the current file.
'Q'        - Quits current file, thus advancing you to the next file.

গিট ডিফ এবং ডিফ্টল এর মাধ্যমে আপনার এখন পাশাপাশি রয়েছে f এবং পাওয়ার ইউজার কাস্টমাইজেশনের জন্য সিডিফ পাইথন সোর্স কোডটি আপনার প্রয়োজন হওয়া উচিত।


2

এখানে একটি পদ্ধতির। আপনি যদি কম মাধ্যমে পাইপ করেন তবে এক্সটার্মের প্রস্থটি 80 তে সেট করা থাকে, যা এত গরম নয়। তবে আপনি যদি আদেশটি যেমন COLS = 210 দিয়ে এগিয়ে যান তবে আপনি আপনার প্রসারিত এক্সটার্মটি ব্যবহার করতে পারেন।

gitdiff()
{
    local width=${COLS:-$(tput cols)}
    GIT_EXTERNAL_DIFF="diff -yW$width \$2 \$5; echo >/dev/null" git diff "$@"
}

1
হাস্যকর. আমি ছদ্মনাম দিয়ে নামের সাথে স্বাক্ষর করেছি তবে তা উপেক্ষা করা হয়েছে ... আমার বাইরে যাওয়ার জন্য ধন্যবাদ, স্ট্যাক ওভারফ্লো flow :(
টমাস মেলম্যান

2

ইন্টেলিজ আইডিইএ খুলুন , "সংস্করণ নিয়ন্ত্রণ" সরঞ্জাম উইন্ডোতে একক বা একাধিক কমিট নির্বাচন করুন, পরিবর্তিত ফাইলগুলি ব্রাউজ করুন এবং প্রতিটি ফাইলের পাশাপাশি পরিবর্তিত পরিদর্শন করতে ডাবল ক্লিক করুন।

বান্ডিলযুক্ত কমান্ড-লাইন লঞ্চারের সাহায্যে আপনি আইডিইএটিকে যে কোনও সাধারণ দিয়ে উপরে আনতে পারেন idea some/path

সংস্করণ নিয়ন্ত্রণ দেখুন ভিন্ন মতামত


1

এই থ্রেডে অনেক ভাল উত্তর রয়েছে। এই ইস্যুটির জন্য আমার সমাধানটি ছিল একটি স্ক্রিপ্ট লেখা।

এই 'গিট-স্ক্রিপ্টনাম' এর নাম দিন (এবং এটি সম্পাদনযোগ্য করে তুলুন এবং এটি আপনার পাঠ্যপুস্তকে যেমন কোনও স্ক্রিপ্টের মতো রাখুন) এবং আপনি এটিকে চালিয়ে একটি সাধারণ গিট কমান্ডের মতো প্রার্থনা করতে পারেন can

$ git scriptname

আসল কার্যকারিতা কেবল শেষ লাইন। উত্সটি এখানে:

#!/usr/bin/env zsh
#
#   Show a side-by-side diff of a particular file how it currently exists between:
#       * the file system
#       * in HEAD (latest committed changes)

function usage() {
    cat <<-HERE
    USAGE

    $(basename $1) <file>

    Show a side-by-side diff of a particular file between the current versions:

        * on the file system (latest edited changes)
        * in HEAD (latest committed changes)

HERE
}

if [[ $# = 0 ]]; then
    usage $0
    exit
fi

file=$1
diff -y =(git show HEAD:$file) $file | pygmentize -g | less -R

1

এটি কিছুটা সীমাবদ্ধ সমাধান হতে পারে, তবে diffবাহ্যিক সরঞ্জাম ছাড়াই সিস্টেমের কমান্ড ব্যবহার করে কাজটি করা যায় :

diff -y  <(git show from-rev:the/file/path) <(git show to-rev:the/file/path)
  • ফিল্টার করুন কেবল পরিবর্তন লাইনগুলি ব্যবহার করুন --suppress-common-lines(যদি আপনার diffবিকল্পটি সমর্থন করে)।
  • এই ক্ষেত্রে কোনও রঙ নেই, কেবলমাত্র সাধারণ diffচিহ্নিতকারী
  • কলামের প্রস্থটি টুইঙ্ক করতে পারে --width=term-width; বাশ প্রস্থ হিসাবে $COLUMNSবা হিসাবে প্রস্থ পেতে পারেন tput cols

আরও সুবিধার্থে এটি সহায়ক গিট-স্ক্রিপ্টের মধ্যেও আবৃত হতে পারে, উদাহরণস্বরূপ, এর মতো ব্যবহার:

git diffy the/file/path --from rev1 --to rev2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.