বর্তমান অবস্থা এবং শেষ প্রতিশ্রুতি মধ্যে পার্থক্য দেখুন


93

কখনও কখনও যখন আমি কোন প্রতিশ্রুতিবদ্ধ হতে চলেছি তখন শেষ প্রতিশ্রুতি থেকে ঠিক কী পরিবর্তন হয়েছিল তা আমি স্মরণ করতে পারি না। কোডের বর্তমান অবস্থা এবং শেষ প্রতিশ্রুতি থেকে আমি কীভাবে আলাদা দেখতে পারি?

উত্তর:


113

আপনি যদি এখনও সূচীতে কোনও ফাইল যোগ না করেন (সহ git add), কেবল তাই করুন

git diff

এটি আপনার কার্যকারী গাছ এবং সূচকের মধ্যে পার্থক্য দেখাবে।

আপনি যদি সূচকে ফাইল যুক্ত করে থাকেন তবে আপনাকে সূচী এবং শেষ প্রতিশ্রুতি (হেড) এর মধ্যে পার্থক্যগুলি দেখানোর জন্য এটি করতে হবে।

git diff --cached

পরিশেষে, আপনি যদি সর্বশেষ প্রতিশ্রুতি ( HEAD) এর সাথে তুলনা করে কার্যনির্বাহী গাছের পরিবর্তনগুলি দেখতে চান তবে (কার্লোস দেখিয়েছেন) আপনি যা করতে পারেন

git diff HEAD

এই পরিবর্তনগুলি হ'ল git diffএবং এর সংমিশ্রণ git diff --cached


4
git diffশিরোনামের তুলনায় ওয়ার্কট্রি তুলনা করে, হেডের সাথে নয়।
কার্লোস মার্টিন নিতো

@ কার্লোসমার্টননিয়েটো আপনি ঠিক বলেছেন, স্যার। এটি প্রতিবিম্বিত করতে আমি আমার পোস্টে উন্নতি করেছি।
ক্লাস মেলবর্ন

আমি এটি চালাচ্ছি, কিন্তু টার্মিনালটি শেষ হয় না, আমি কীভাবে প্রস্থান করতে পারি?? কিছুই কাজ করে না।
ফ্রান্সিসকো

@ ক্লাসমেলবার্ন, git diffসূচকের রাজ্যের কোনওটি এবং পূর্বের প্রতিশ্রুতি এক ভিন্ন বার্তায় কি সম্ভব?
alpha_989

4
ভাল করে এটি বের করে ফেলেছে git diff --cached HEAD^:)
alpha_989

33

আপনি যদি এখনই কোনও প্রতিশ্রুতিবদ্ধ হয়ে থাকেন বা বর্তমান অবস্থার তুলনায় সর্বশেষ প্রতিশ্রুতিতে কী পরিবর্তিত হয়েছে তা দেখতে চান (ধরে নিবেন যে আপনার একটি পরিষ্কার পরিশ্রমী গাছ রয়েছে) আপনি ব্যবহার করতে পারেন:

git diff HEAD^

এটি তাত্ক্ষণিক পূর্বের প্রতিশ্রুতির সাথে শিরোনামটির তুলনা করবে। একজনও করতে পারতেন

git diff HEAD^^

খেলার আগে 2 কমিটের রাজ্যের সাথে তুলনা করা। বর্তমান অবস্থা এবং একটি নির্দিষ্ট কমিটের মধ্যে পার্থক্য দেখতে কেবল সহজভাবে এটি করুন:

git diff b6af6qc

b6af6qcকমিট হ্যাশের উদাহরণ যেখানে Where


4
উইন্ডোজের সিএমডি সংস্করণের গিটের একটি শীর্ষস্থান - আপনাকে ক্যারেটের সাথে ক্যারেট (^) অক্ষর থেকে বাঁচতে হবে। সুতরাং, "গিট ডিফ হেড ^" হবে "গিট ডিফ হেড ^^"। একইভাবে, "HEAD ^^" "HEAD ^^^^" হিসাবে ইনপুট হবে।
Ellor

4
এই উত্তরে আমার মনে হয় "শেষ প্রতিশ্রুতি" কী বোঝায় তা কিছুটা অস্পষ্ট। HEAD^কমিট হয় আগে সর্বশেষ কমিট।
ক্লাস মেলবর্ন

3

আপনি গিটকে বর্তমান / শেষ প্রতিশ্রুতি থেকে আলাদা করতে বলেছেন, যার সংক্ষিপ্তসার রয়েছে HEAD

সুতরাং git diff HEADওয়ার্কট্রির বর্তমান অবস্থা বর্তমান কমিটের সাথে তুলনা করবে।


3

এটি পার্থক্য এবং ফাইলগুলি কীভাবে পরিবর্তন / সংশোধন করা হয়েছে তাও দেখায়।

$ git status 

সূচক ফাইল এবং বর্তমান এইচএইডি কমিটের মধ্যে পার্থক্য রয়েছে এমন পাথগুলি, কার্যকারী গাছ এবং সূচক ফাইলের মধ্যে পার্থক্য রয়েছে এমন পথগুলি এবং কার্যকরী গাছের পাথগুলি যা গিট দ্বারা ট্র্যাক করা হয়নি (এবং গিটিগনোর দ্বারা উপেক্ষা করা হয়নি) (5) )। প্রথমটি হ'ল গিট কমিট চালিয়ে আপনি যা প্রতিশ্রুতিবদ্ধ করবেন; দ্বিতীয় এবং তৃতীয়টি হ'ল গিট কমিট চালানোর আগে গিট অ্যাড চালিয়ে আপনি কী করতে পারেন।

https://www.kernel.org/pub/software/scm/git/docs/git-status.html


2

এটি আমার পক্ষেও কাজ করে:

# The last one
git diff HEAD~1 HEAD

# The last but one, etc...
git diff HEAD~2 HEAD~1

এটি সাধারণত রৈখিক ইতিহাসের জন্য কাজ করে। যদি মার্জ কমিটগুলি থাকে তবে এটি আরও জটিল হতে পারে। আমি আপনাকে একটি সুন্দর এবং সম্পূর্ণ ব্যাখ্যার জন্য এই ডকটি সন্ধান করার পরামর্শ দিচ্ছি, বিশেষত গাছের উদাহরণের উদাহরণ:

https://git-scm.com/docs/gitrevisions

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