উত্তর:
আপনি করতে পারেন:
git diff master~20:pom.xml pom.xml
... প্রথম পিতামাতার মাধ্যমে 20 টি সংশোধন pom.xmlথেকে আপনার বর্তমানের সাথে তুলনা করতে master। আপনি master~20অবশ্যই প্রতিশ্রুতির অবজেক্ট নাম (SHA1sum) বা সংশোধন নির্দিষ্ট করার বিভিন্ন উপায়ের সাথে প্রতিস্থাপন করতে পারেন ।
নোট করুন যে এটি আসলে pom.xmlআপনার কার্যকরী গাছের সংস্করণটির সাথে পুরানো তুলনা করছে, প্রতিশ্রুতিবদ্ধ সংস্করণটি নয় master। আপনি যদি এটি চান তবে তার পরিবর্তে আপনি নিম্নলিখিতটি করতে পারেন:
git diff master~20:pom.xml master:pom.xml
git diff <revision> <path>
উদাহরণ স্বরূপ:
git diff b0d14a4 foobar.txt
git diff <revision> root/path/file।
আপনি যদি একক ফাইলের সর্বশেষ কমিটের মধ্যে পার্থক্য দেখতে চান তবে আপনি এটি করতে পারেন:
git log -p -1 filename
এটি আপনাকে গিটের মধ্যে ফাইলের ভিন্নতা দেয়, আপনার স্থানীয় ফাইলের সাথে তুলনা করে না।
-1পরিবর্তনগুলি না পাওয়া পর্যন্ত আপনি ধাপে ধাপে বৃদ্ধি করতে পারেন ।
gitlog () { git log -${3:-p} -${2:-1} $1; } মত ব্যবহার করা হয়েছে: gitlog Rakefileবা gitlog Rakefile 5এবং gitlog Rakefile 10 s। প্রথম দেখায় একটি পার্থক্য; দ্বিতীয়টি পাঁচটি পার্থক্য দেখায়; তৃতীয় দশটি শো --no-patch।
শেষ প্রতিশ্রুতিতে কোনও ফাইলে কী পরিবর্তন হয়েছিল তা দেখতে:
git diff HEAD~1 path/to/file.
আপনি যে সংখ্যাটি (~ 1) এর সাথে পরিবর্তিত করতে চান সেই এন-ওটি প্রতিশ্রুতিতে পরিবর্তন করতে পারেন।
HEAD~1প্রতিস্থাপন করা হয়েছে <revision>, যা এই উত্তরটিকে সদৃশ করে তোলে।
জেনেরিক সিনট্যাক্স:
$git diff oldCommit..newCommit -- **FileName.xml > ~/diff.txt
আপনার রেপোর যে কোনও জায়গায় "FileName.xML" নামের সমস্ত ফাইলের জন্য।
"-" এবং "**" এর মধ্যে স্থানটি লক্ষ্য করুন
আপনার প্রশ্নের উত্তর:
$git checkout master
$git diff oldCommit..HEAD -- **pom.xml
or
$git diff oldCommit..HEAD -- relative/path/to/pom.xml
গিটের মতো সর্বদা আপনি কমিট আইডি করতে একটি ট্যাগ / শা 1 / "হেড ^" ব্যবহার করতে পারেন।
উবুন্টুতে 1.9.1 গিট দিয়ে পরীক্ষা করা হয়েছে।
যদি উভয়ই প্রতিশ্রুতিবদ্ধ না হয় তবে আপনার বাতুলের ব্রেস সম্প্রসারণটি সত্যই কার্যকর প্রমাণিত হয়েছে, বিশেষত যদি আপনার ফাইলের নাম দীর্ঘ হয় তবে উপরের উদাহরণটি:
git diff master~20:pom.xml master:pom.xml
হবে
git diff {master~20,master}:pom.xml
আরো বন্ধনী সম্প্রসারণ ব্যাশ সঙ্গে।
5 টি বর্তমানের সাথে প্রতিশ্রুতিবদ্ধ করার জন্য, উভয়ই masterকেবল সহজভাবে করুন:
git diff master~5:pom.xml master:pom.xml
এছাড়াও আপনি হ্যাশ নম্বর প্রতিশ্রুতিবদ্ধ করতে পারেন, উদাহরণস্বরূপ যদি হ্যাশ নম্বরটি হয় x110bd64তবে পার্থক্যটি দেখতে আপনি এই জাতীয় কিছু করতে পারেন:
git diff x110bd64 pom.xml
গিট ডিফার-WE হেড উত্স / মাস্টার পাথ / টু / ফাইল
git diff master~20 -- pom.xml
আপনি খুব মাস্টার শাখায় না থাকলে কাজ করে।
আপনি যদি কোনও গ্রাফিকাল সরঞ্জাম ব্যবহার করে ভাল থাকেন (বা এমনকি এটি পছন্দ করেন) তবে আপনি:
gitk pom.xml
গিটকে আপনি যে কোনও কমিট ক্লিক করতে পারেন (এটি "নির্বাচন করতে") এবং পপআপ মেনুতে "আপনি এই ডিফ করুন -> নির্বাচিত" বা "পৃথক নির্বাচিত -> এটি" নির্বাচন করতে আপনি কোন আদেশ পছন্দ করেন তার উপর নির্ভর করে অন্য কোনও প্রতিশ্রুতিতে ডান ক্লিক করতে পারেন।
গিটহাব থেকে একই কাজ করতে আগ্রহী ব্যক্তিদের জন্য, সময়ের সাথে কমিটের তুলনা দেখুন ।
উদাহরণস্বরূপ আপনার যদি কোনও একক ফাইলের মধ্যে আলাদা করতে হয় তবে আপনি এটি করতে পারেন
git diff stash@{0} -- path/to/file
আপনি যদি কোনও নির্দিষ্ট প্রতিশ্রুতিতে পার্থক্যটি সন্ধান করে থাকেন এবং আপনি কমান্ড লাইনের পরিবর্তে গিথুব ইউআই ব্যবহার করতে চান (বলুন আপনি এটি অন্যান্য লোকের সাথে লিঙ্ক করতে চান), আপনি এটি করতে পারেন:
https://github.com/<org>/<repo>/commit/<commit-sha>/<path-to-file>
উদাহরণ স্বরূপ:
উপরের ডানদিকে আগের এবং পরবর্তী লিঙ্কগুলি নোট করুন যা আপনাকে কমিটের সমস্ত ফাইলের মধ্যে নেভিগেট করার অনুমতি দেয়।
এটি কেবল কোনও নির্দিষ্ট কমিটের জন্য কাজ করে, কোনও দুটি স্বেচ্ছাসেবী সংস্করণের মধ্যে তুলনা করার জন্য নয়।
git diff <revision>:foo/ HEAD:foo/।