গিট ডিফ - আমাকে শেষের পরিবর্তনগুলি দেখান?


86

আমার সম্পাদক আমার উত্স ফাইলগুলির লাইন শেষগুলি পরিবর্তন করছে। আমি যখন করি তখন আমি git diffএকই লাইনটি দু'বার দেখি - একবার -এবং একবার সাথে +- কোনও দৃশ্যমান পার্থক্য ছাড়াই।

git diffএই পরিবর্তনটি আসলে কী ছিল তা আমাকে কীভাবে দেখাব?


কাছাকাছি অনুরূপ এই (এছাড়াও নিচে উল্লিখিত): আমার প্রিয়git config diff.wsErrorHighlight all
জশুয়া গোল্ডবার্গ

উত্তর:


64

প্রথমে নিশ্চিত হয়ে নিন যে আপনি রঙিন আউটপুট ব্যবহার করছেন (উদাহরণস্বরূপ git diff --color) এবং আপনি (যেমন) এর সাথে হাইটস্পেস হাইলাইটিং সক্ষম করেছেন

git config color.diff.whitespace "red reverse"

এটি সমস্ত ক্ষেত্রে কার্যকর নাও হতে পারে, যেমন মুছে ফেলা রেখাগুলির gitজন্য পেছনের সাদা স্থানটিকে হাইলাইট করার মতো মনে হয় না । আপনি মুছে ফেলা সাদা স্থানটি দেখতে, কেবল ব্যবহার করুন

git diff -R

সাদা অংশটিকে তুলনার 'যুক্ত' দিকে রেখে যেখানে এটি হাইলাইট হয়।

আরও তথ্যের জন্য, এই এসও প্রশ্নের উত্তরগুলি দেখুন ।


আমার গিট সংস্করণ ২.১.৪ রয়েছে এবং আমি গিট কনফিগার কমান্ডের পরামর্শে কাজ করেছি। কিন্তু গিট ডিফ এখনও কোনও পার্থক্য দেখাচ্ছে না। যদি আমি হেক্সডাম্প-গ-এর কাছে গিট আলাদা করে পাই তবে সেখানে কিছু দেখানোর মতো কিছুই নেই: 000000f0 2d 2d 7d 0a 2b 2b 7d 0a |--}.++}.|7 ডি হ'ল '}' কোঁকড়া-ব্রেস।
কার্ডিফ স্পেস ম্যান

37

আপনি নিম্নলিখিত কমান্ডের সাথে লাইন-শেষের পার্থক্য দেখতে পাবেন।

git diff | cat -v

তারপরে সিআরএলএফ (ডস) সমাপ্তির জন্য "^ এম" মুদ্রিত হয়, এলএফ (ইউনিক্স) সমাপ্তির জন্য কিছুই নেই।

দৃশ্যত গিট ডিফ সঠিক কাজ করছে, সিআরএলএফ শেষ হওয়ার জন্য সিআর এবং এলএফ অক্ষর মুদ্রণ করছে। তবে সিআর কনসোল দ্বারা গ্রাস করা হয়েছে বলে আমরা এটি দেখতে পারি না। ক্যাট-ভি ব্যবহার করে আমরা এটি দৃশ্যমান করতে পারি।


অন্য অনুরূপ পন্থা হ'ল git diff > somediff && vi somediff, ভিএম সিআরএলএফকে এম এম হিসাবেও দেখায়। তবে cat -vঝরঝরে।
নিক এক্স

4
আমাকে শেখার জন্য কমপক্ষে +1 নয়, এটি ব্যবহারের 20 বছর পরে, এর একটি বিকল্প সম্পর্কে catআমি অবগত ছিলাম না। :-)
হ্যারাল্ড

25

হোয়াইটস্পেস পরিবর্তনগুলি দেখার একটি উপায় হ'ল একটি অক্ষর দ্বারা অক্ষর "শব্দের সাথে পৃথক" করা

git diff --color --word-diff-regex=.

এটি সর্বত্র লাইনগুলিতে সমস্ত সাদা স্থান পরিবর্তনকে হাইলাইট করে । সরানো হয়নি হোয়াইটস্পেস জড়িয়ে রাখা হয়েছে [-এবং -]এবং হোয়াইটস্পেস যোগ {+এবং +}

বিকল্প হিসাবে, অ্যালেক্স দ্বারা পরামর্শ হিসাবে

git diff --color --ws-error-highlight=new,old

লাইনের প্রান্তে সমস্ত সাদা স্থান পরিবর্তন হাইলাইট করে


12
git diff --ws-error-highlight=new,old

পরিবর্তিত লাইনে সাদা স্থান স্পষ্ট করে হাইলাইট করে।


আপনি গিটের কোন সংস্করণ ব্যবহার করছেন? আমার সিস্টেমে 2.1.4 গিট বলছে --ws-ભૂલ-হাইলাইট = নতুন, পুরানো একটি অবৈধ বিকল্প।
কার্ডিফ স্পেস ম্যান

এই বিকল্পটি 2015 সালে গিটার 2.5.0 এ যুক্ত হয়েছিল।
মিনিগড

5

একটি গ্রাফিকাল ডিফ সরঞ্জাম আপনাকে আরও ভাল পরিবর্তন দেখাবে - চেষ্টা করুন git difftool

মেল্ডটি ব্যবহার করুন এবং সাদা স্থান দেখানোর জন্য পছন্দগুলি সেট করুন। (সম্পাদনা করুন -> পছন্দসমূহ -> সাদা স্থান দেখান Show)

অন্যান্য গ্রাফিকাল সরঞ্জামগুলিতে সম্ভবত অনুরূপ বিকল্প রয়েছে - @ সুতির উত্তর + মন্তব্য আপনাকে কীভাবে ভিমডিফ দিয়ে এটি করবেন তা বলে tells


একটি গ্রাফিকাল ডিফ সরঞ্জাম উপলব্ধ নাও হতে পারে। @ পল-হুইটেকারের উত্তর প্রশ্নের উত্তর (কিছু টার্মিনাল) দ্বারা আবদ্ধ প্রসঙ্গে কাজ করবে।
বিযোন

এখন এটি অদ্ভুত, তবে git difftool --tool=meld doesn'tএমনকি মেল্ডও চালু করুন। আমি জানি না যে এটি একটি রিবেস প্রক্রিয়াধীন রয়েছে বা না হওয়ার কারণে।
কার্ডিফ স্পেস ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.