শাখাগুলির মধ্যে গিট ভিজ্যুয়াল পার্থক্য


196

এই উত্তরটি গিটে চেক করা আছে এমন দুটি ফাইলের মধ্যে একটি ভিজ্যুয়াল পার্থক্য দেখার জন্য দুর্দান্ত: আমি কীভাবে ভিজ্যুয়াল ডিফ প্রোগ্রামের সাথে 'গিট ডিফ' আউটপুট দেখতে পারি?

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

git diff --name-status master dev

যা খুব তথ্যবহুল নয় এবং খুব চাক্ষুষ নয়।

এখানে আরও ভাল কিছু আছে?


আমি এখানে নীচে একটি উত্তর যুক্ত করেছি যার আগে এখানে দৃশ্যাবলী ছিল না: কী শাখাগুলি পরিচালনা করে তা কীভাবে দেখা যায় (সাধারণ বা অনন্যভাবেই হোক)। কোর গিট কার্যকারিতা সহ আপনি অনেক কিছু করতে পারেন। আপনার ভিজ্যুয়াল ডিফের মধ্যে আপনি কী অন্তর্ভুক্ত করতে চান তা উল্লেখ করা ভাল। সর্বাধিক উত্তরগুলি কমিটের লাইন-বাই-লাইনে আলাদা হয়, যেখানে আপনার উদাহরণ কোনও প্রদত্ত প্রতিশ্রুতিতে প্রভাবিত ফাইলগুলির নামগুলিকে কেন্দ্র করে।
কে ভি

উত্তর:


227

git diffএকটি ব্যাপ্তি সহ ব্যবহার করুন ।

git diff branch1..branch2

এটি প্রতিটি শাখার টিপসের তুলনা করবে।

আপনি যদি সত্যিই কিছু জিইআইআই সফ্টওয়্যার চান তবে আপনি সোর্স ট্রি এর মতো কিছু চেষ্টা করতে পারেন যা ম্যাক ওএস এক্স এবং উইন্ডোজ সমর্থন করে।


27
এটি ভিজ্যুয়াল ডো নয়। ;)
সামুদ্রিক

35
লিনাক্স অপারেটিং সিস্টেমে আমি ইনস্টল সুপারিশ Meld, তারপরে ডিফল্ট যেমন সেটিং difftoolসঙ্গে git config --global diff.tool meldএবং পরিশেষে প্লেইন পরিবর্তে লঞ্চ diffসঙ্গে git difftool branch1..branch2। ফলাফলটি দেখতে খুব সুন্দর দেখাচ্ছে।
গ্যাব্রিয়েল

8
ব্যবহার মেশানো Git কনফিগ ছাড়া চাক্ষুষ difftool:git difftool -t meld branch1..branch2
user3780389

2
পাঠকদের জন্য: আমার পোস্ট হিসাবে, এখানে প্রতিটি উত্তরই এই উত্তর ব্যতীত ব্যক্তি যা জিজ্ঞাসা করেছিল (জিইউআইয়ের মধ্যে পৃথক) তা করার একটি উপায় দেয়।
জি হাক্সলে

3
@ জিএইচহক্সলে ওপি কোথায় জিইউআই সমাধান চাইবে?
অ্যালেক্স

97

দুটি শাখার মধ্যে সমস্ত পার্থক্যের একটি ভিজ্যুয়াল পার্থক্য দেখতে আমি দুটি শাখাকে মার্জ করতে চাই - একত্রিত করার অঙ্গীকার ছাড়াই - এবং তারপরে git guiপার্থক্যটির ওভারভিউ পেতে এক্সটেনশনগুলি ব্যবহার বা গিট দিন use

বিনা বাধায় মার্জ করার জন্য গিট কমান্ড লাইন:

গিট চেকআউট শাখাআ
গিট একীভূত - না-কমিট - নন-এফএফ শাখাবি

তারপরে সম্পন্ন হয়ে গেলে, আপনি এর সাথে একত্রীকরণটিকে পূর্বাবস্থায় ফেরাতে পারেন

গিট মার্জ --abort

(h / t to @ jcugat এর মন্তব্যের জন্য)


10
আপনি যদি নিজের আইডিই (বা গিট জিইআইআই ডিফ্টল সহ অন্যান্য-সর্বদা-সহজ-সংহত-সংহত-নয়) ব্যবহার করতে চান তবে এই পদ্ধতির প্রাসঙ্গিকতাটিকে হ্রাস করবেন না! এই বিকল্পটি আমার জন্য দুর্দান্ত, যেহেতু আমি ইন্টেলিজ ব্যবহার করি এবং আইডিইর সমস্ত সংশ্লেষ-হাইলাইটেড, ত্রুটি-হাইলাইটেড, ডেড-কোড-হাইলাইটেড, সম্পাদনাযোগ্য-স্থান-গৌরব্যে আইডিইতে পরিবর্তিত ফাইলগুলির মাধ্যমে স্পিন করা সর্বাধিক পছন্দ করি। আমি আমার সমস্ত কোড পর্যালোচনার জন্য এই পদ্ধতিটি ব্যবহার করি এবং আমি গিটহাবের মধ্যে অত্যাশ্চর্য পুল অনুরোধ তুলনা সরঞ্জামটি খুব পিছনে ফেলে রেখেছি। আমি যাবার সাথে সাথে সম্পাদনাগুলিও করতে পারি এবং হয়ে গেলে আমি কেবল "-কোড-পর্যালোচনা" যুক্ত এবং প্রতিশ্রুতিবদ্ধ একটি নতুন শাখা তৈরি করি!
কেঘাস্টি

2
এটি ততক্ষণ কাজ করে যতক্ষণ না কোনও মার্জ সংঘাত রয়েছে এবং ব্যর্থ হয় যখন কোনও মার্জ সংঘাত থাকে।
নাগা কিরণ

1
আমি যে পদ্ধতির অনেক পছন্দ! এছাড়াও, এতে অন্তত আমার git guiপক্ষে সংঘাতগুলি অস্থির হিসাবে দেখানো হয়েছে, অ-দ্বন্দ্বগুলি মঞ্চ হিসাবে প্রকাশিত হয়েছে, সুতরাং আপনি এমনকি একটি ভাল পার্থক্য পাবেন। আমার পক্ষে শীর্ষের উত্তরের চেয়ে অনেক বেশি সহায়তা করে: ডি
ডিজে গুম্মিকুহ

55

আপনি যদি ইন্টেলিজ আইডিয়া আইডিই ব্যবহার করছেন তবে আপনি কেবল শাখায় তুলনা বিকল্পটি ব্যবহার করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


এই তুলনাটি সংশোধন করার জন্য কি কোনও কনফিগারেশন / বিকল্প / সেটিংস রয়েছে? (গিফ ডিফের জন্য --ignore-space-at-eol এর মত)
সুপারোল

49

আপনি গিটকের সাহায্যে এটি সহজেই করতে পারেন।

> gitk branch1 branch2

প্রথমে শাখা 1 এর ডগায় ক্লিক করুন। এখন ব্রাঞ্চ 2 এর ডগায় ডান ক্লিক করুন এবং নির্বাচন করা ডিফ এইটি> নির্বাচন করুন।


7
ব্যবহার gitk branch1..branch2শুধুমাত্র শো দুটি পুনর্বিবেচনা মধ্যে হলেও ক্ষতি নেই।
T3rm1

আপনি যদি আপনার শাখায় যে পরিবর্তনগুলি করেছেন তা দেখতে চাইলে গিটক (শাখা 1 শাখা 2 ছাড়াই) ব্যবহার করে।
মাইকওয়াসেমিকে

31

উইন্ডোতে টরটোইজিট ব্যবহার করে আপনারা যারা ব্যবহার করছেন, আপনি বরং এটি অস্পষ্ট বৈশিষ্ট্যের মাধ্যমে কিছুটা চাক্ষুষ তুলনা পেতে পারেন:

  1. আপনি যে ফোল্ডারের তুলনা করতে চান তাতে নেভিগেট করুন
  2. এটি ধরে রাখুন shiftএবং এটিকে ডান-ক্লিক করুন
  3. TortoiseGit -> ব্রাউজ রেফারেন্স এ যান
  4. ctrlতুলনা করতে দুটি শাখা নির্বাচন করতে ব্যবহার করুন
  5. আপনার নির্বাচনকে ডান-ক্লিক করুন এবং "নির্বাচিত রেফগুলি তুলনা করুন" এ ক্লিক করুন

সূত্র: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a- विसरा /


আপনি শিফট রাখা কেন?
জিরো 3

1
ডান-ক্লিক করার সময় শিফ্ট চেপে ধরে রাখা সর্বদা পুরো কচ্ছপটি মেনু নিয়ে আসে, আপনি যদি কিছু আইটেম না দেখানোর জন্য টরটোইজিট কনফিগার করেছেন।
পর্যালোচনা

এটা সত্যিই দারুন. আশা করি এটি আরও বিশিষ্ট বৈশিষ্ট্য ছিল।
ড্র হয়েছে

22

আপনি যদি ওএসএক্স বা উইন্ডোজ ++ ব্যবহার করেন তবে আটলশিয়ান সোর্স ট্রি এর জন্য খুব ভাল কাজ করে। এটা বিনামূল্যে.

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

এখানে চিত্র বর্ণনা লিখুন

ধরে নিই যে আপনি কোনও বৈশিষ্ট্য শাখাটি পরীক্ষা করে দেখেছেন এবং আপনি 'মাস্টার'-এর বিপরীতে ভিন্নতা দেখতে চান,' মাস্টার 'শাখায় ডান ক্লিক করুন এবং "বর্তমানের বিপরীতে আলাদা" নির্বাচন করুন

দুর্ভাগ্যক্রমে, দেখে মনে হচ্ছে এটি শীঘ্রই * নিক্স বিতরণে উপলব্ধ হবে


3
এটা 'বিনামূল্যে' হতে পারে কিন্তু এটা অবশ্যই কিছু সময় ব্যবহারের তাদের নিবন্ধন পদ পড়তে প্রয়োজন: atlassian.com/legal/customer-agreement আমি এতদূর টুল পছন্দ করেছেন, কিন্তু এই আমাকে ঠেলাঠেলি করা হতে পারে।
আকৌপ্পি

@akauppi কোন অংশ আপনাকে বন্ধ করে দিয়েছে? আমি ভেবেছিলাম all সমস্ত চুক্তিগুলি প্রায় একই রকম ছিল
এলেক্স

একটি বছর আগে ছিল। হ্যাঁ, চুক্তিগুলি একই রকম হতে পারে তবে এটি সেই প্রক্রিয়া ছিল যা সোর্সট্রি আমাকে চাপ দিচ্ছিল। এটি অদ্ভূত ছিল. বাইগোনস, যদিও। আপনার কাছে আমার কাছে বিশদ থাকবে না। দুঃখিত
akauppi

16

"ডিফ্টল" চেষ্টা করুন (ধরে নিবেন যে আপনার কাছে ডিফ সরঞ্জামসমূহ সেটআপ রয়েছে) - দেখুন https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html

আমি সংক্ষিপ্তসারটির জন্য নামের স্থিতিটি ভাল দেখতে পাই তবে ডিফ্টলটি পরিবর্তনগুলি পুনরাবৃত্তি করবে (এবং -dবিকল্পটি আপনাকে ডিরেক্টরি ডিরেক্টরি দেয়), উদাহরণস্বরূপ

$ git difftool their-branch my-branch

Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...

বা -dআপনার বর্তমান শাখায় @ আরসিলভা 4 উল্লেখ করেছে এবং এটি ডিফল্ট হিসাবে যেমন - মাস্টারের সাথে তুলনা করুন:

$  git difftool -d master..

... এবং হ্যাঁ - এখানে অনেকগুলি প্রকরণ রয়েছে - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html


3
ধন্যবাদ, এটি দরকারী ছিল। -D বিকল্প যুক্ত করা জিনিসগুলি আরও উন্নত করে git difftool -d their-abc my-abc
তুলবে

যেহেতু ব্যাখ্যাশেল -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.
ডট কম

8

আপনি যদি গিথুব ব্যবহার করছেন তবে আপনি এর জন্য ওয়েবসাইটটি ব্যবহার করতে পারেন:

github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch

এটি আপনাকে দুজনের তুলনা দেখাবে।


এটি কাজ করে (আমি এটি সর্বদা করি) তবে এটি আপনাকে গিথুব রেপোতে আপনার কোডটি চাপানো দরকার। যদিও এটি আমার মতে সত্যই গ্রহণযোগ্য সাবধানতা নয়।
adamwong246

2
বা ঠিক github.com/url/to/your/repo/compare/তখনই আপনি শাখাগুলি নির্বাচন করতে পারেন
ক্যারাম্বা

এবং আমি কীভাবে এই SHA পাব? আমি বলতে চাইছি, কোনও শাখার ডগা বলতে কী বোঝায়?
অপ্টিমাস প্রাইম

8

ইন GitExtensions আপনি সংস্করণ গ্রিড উভয় শাখার সঙ্গে নির্বাচন করতে পারেন Ctrlচাপা। তারপরে আপনি ফাইলগুলি দেখতে পাবেন যা এই শাখাগুলির মধ্যে পৃথক। আপনি যখন কোন ফাইল নির্বাচন করেন আপনি তার জন্য পৃথক দেখতে পাবেন।

এখান থেকে নেওয়া হয়েছে


আমি আমার রিভিশন গ্রিডে 2 টি শাখা নির্বাচিত করেছি, তবে আমি উপরের মেনুতে কোনও তুলনামূলক আদেশ দেখতে পাচ্ছি না বা যখন আমি ডান ক্লিক করব do
এরিক

1
আমি এটি নীচের ফলকের শিরোনামে পেয়েছি। কমিট, ফাইল ট্রি এবং ডিফ রয়েছে।
এরিক

7

হালনাগাদ

ম্যাক: আমি এখন সোর্স ট্রি ব্যবহার করি। পুরোপুরি প্রস্তাবিত। আপনি বিশেষভাবে মুরগি / আনস্টেজ করার উপায়টি আমি পছন্দ করি।

লিনাক্স: আমি এর সাথে সাফল্য পেয়েছি:

  • smartgit
  • GitKraken
  • meld

যেমন smartgitউবুন্টুতে ইনস্টল করতে :


এটি কাজ করে:

গিল্ডের মতো জিইউআই ডিফ ডিভাইসের সাথে গিট-ডিফ্লোর। এখানে পঞ্চম পয়েন্ট দেখুন:

http://rubyglazed.com/post/15772234418/git-ify-your-command-line

গিট এবং মেল্ড সম্পর্কে এখানে একটি সুন্দর পোস্ট রয়েছে: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy


4

আপনি যদি Eclipse ব্যবহার করেন তবে আপনি অন্য বর্তমান ট্যাগ / শাখার সাথে কর্মক্ষেত্রে আপনার বর্তমান শাখাটি দৃশ্যত তুলনা করতে পারেন:

গ্রহণ কর্মক্ষেত্র তুলনা


ব্যক্তিগতভাবে আমি উপ-সম-পার্থক্যের জন্য পৃথকীকরণের সমর্থনটি খুঁজে পাই, তবে যদি এটি আপনার কাছে থাকে তবে তা ঠিক।
ysap

4

এটি করার জন্য আপনি পারফোর্স থেকে ফ্রি পি 4 মার্জ ব্যবহার করতে পারেন:

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

এখানে চিত্র বর্ণনা লিখুন

এটি গিটের সাথে সংহত করার বিশদটি এখানে এবং এখানে পাওয়া যাবে

তবে উপরের লিঙ্কগুলির একটি দ্রুত সংক্ষিপ্তসার হ'ল:

  • নীচের বিটগুলি আপনার ~ / .gitconfig এ রাখুন এবং তারপরে আপনি করতে $ git mergetoolএবং $ git difftoolp4 विसর ব্যবহার করতে পারেন
  • দ্রষ্টব্য যে $ git diffএখনও ডিফল্ট ইনলাইন ডিফ ভিউয়ার ব্যবহার করবে :) (গিট সংস্করণ ১.৮.২ সহ পরীক্ষিত)

.Gitconfig এর জন্য পরিবর্তনসমূহ

[merge]
  keepBackup = false
    tool = p4merge
[mergetool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    tool = p4merge
[difftool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""

2

আপনি যদি দুর্দান্ত ওয়েবস্টোরম সম্পাদক ব্যবহার করেন তবে আপনি যে কোনও শাখার সাথে তুলনা করতে পারেন: ওয়েবস্টর্ম গিট তুলনা


আসলে আমি কেবল লক্ষ্য করেছি যে ইন্টেলিজ আইডিইএ (সম্ভবতঃ ওয়েবস্টোরম) "হাইলাইট নন-পিকড কমিটস" করার ক্ষমতা রাখে যা এটি খুব স্পষ্ট করে তোলে যা কোন শাখায় বিদ্যমান কিন্তু অন্যটি নয়।
আর্থুরকেয়ে

হ্যাঁ, আমি "সেভ অটোফর্ম্যাট অন সেভ" দ্বারা নির্বাচিতভাবে একটি রেপোতে পরিবর্তনগুলি বোঝাতে রোল ফেলার জন্য কেবল ইন্টেলিজ ব্যবহার করেছি। খুব সহজ ছিল ... এটি করার জন্য "স্থানীয় সাথে আগে তুলনা করুন" বিকল্পটি খুঁজে পেতে হয়েছিল
টম এইচ

1

একটু দেখো git show-branch

কোর গিট কার্যকারিতা সহ আপনি অনেক কিছু করতে পারেন। আপনার ভিজ্যুয়াল ডিফের মধ্যে আপনি কী অন্তর্ভুক্ত করতে চান তা উল্লেখ করা ভাল good সর্বাধিক উত্তরগুলি কমিটের লাইন-বাই-লাইনে আলাদা হয়, যেখানে আপনার উদাহরণ কোনও প্রদত্ত প্রতিশ্রুতিতে প্রভাবিত ফাইলগুলির নামগুলিকে কেন্দ্র করে।

একটি দৃষ্টিভঙ্গি যা সম্বোধন করা হয়নি বলে হ'ল শাখাগুলি যে কমিট করে তা (কী সাধারণ বা অনন্যভাবে) see

এই চাক্ষুষের জন্য, আমি একটি বড় অনুরাগী git show-branch; এটি সাধারণ পূর্বপুরুষের কাছে ফিরে প্রতিটি শাখায় কমিটের একটি সুসংহত ছক ছড়িয়ে দেয়। - ডাইভারজেন্স সহ একাধিক শাখার রেপোতে চেষ্টা করার জন্য, কেবল git show-branchআউটপুটটি টাইপ করে পরীক্ষা করে দেখুন - উদাহরণ সহ লেখার জন্য, গিট শাখার মধ্যে কমিটের তুলনা দেখুন


0

ভিজুয়াল স্টুডিওতে (ভিএস 2017 তে পরীক্ষিত) একক ফাইলের বিপরীতে সম্পূর্ণ কমিটের মধ্যে ভিজ্যুয়াল পার্থক্য কীভাবে দেখতে পাবেন তা এখানে is দুর্ভাগ্যক্রমে, এটি কেবল একটি শাখার মধ্যে কমিটের জন্য কাজ করে: "টিম এক্সপ্লোরার" এ, "শাখা" দেখুনটি বেছে নিন, রেপোতে ডান ক্লিক করুন এবং নীচের চিত্রের মতো "ইতিহাস দেখুন" নির্বাচন করুন।

এখানে চিত্র বর্ণনা লিখুন

তারপরে বর্তমান শাখার ইতিহাস প্রধান অঞ্চলে উপস্থিত হয়। (যে শাখাগুলি বর্তমান শাখায় পূর্বের কমিটি হিসাবে শেষ হয়েছিল সেগুলি লেবেল দ্বারা চিহ্নিত করা হয়েছে Now) এখন Ctrl-বামে কয়েকটা কমিট নির্বাচন করুন, তারপরে ডান ক্লিক করুন এবং পপ-আপ মেনু থেকে "কমিটের তুলনা করুন ..." নির্বাচন করুন।

মাইক্রোসফ্ট বিশ্বের শাখাগুলির তুলনা করার বিষয়ে আরও জানতে এই স্ট্যাকওভারফ্লো প্রশ্নটি দেখুন: ভিজুয়াল স্টুডিও ব্যবহার করে গিট শাখাগুলির মধ্যে পার্থক্য


1
শুধুমাত্র একটি একক শাখার ইতিহাস দেখায়, তাই শাখার মধ্যে তুলনা করতে পারে না।
মিচা ফিটা

0

আপনি এক্সটেনশন কোডলেন্স ব্যবহার করে শাখাগুলির তুলনা করতে vscode ব্যবহার করতে পারেন, এটি ইতিমধ্যে এই এসওতে জবাব দেওয়া হয়েছে: ভিজ্যুয়াল স্টুডিও কোডে বিভিন্ন শাখার তুলনা কীভাবে করা যায়

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