গিটের মধ্যে একটি ফাইলের নির্দিষ্ট সংস্করণটি কীভাবে পরীক্ষা করতে পারি?


88

গিটে আমি কীভাবে একটি ফাইলের একটি নির্দিষ্ট সংস্করণ পরীক্ষা করতে পারি?

আমি এই মেইলটি মেইলিং তালিকায় পেয়েছি , যা বলেছে:

$ git checkout HEAD~43 Makefile
$ git reset Makefile

তবে আমি কীভাবে 'হেড ~ 43' সন্ধান করব তা বুঝতে পারি না, আমি যদি এটি করি তবে আমি git log aFileকীভাবে 'হেড ~ 43' ব্যবহার করব তা আমি কীভাবে জানতে পারি?

এবং কেন আমাকে git resetসেই ফাইলটির জন্য চালানো দরকার ? এটার কাজ কি?


"গিট রিসেট <কমিট> <ফাইল>" "গিট চেকআউট <কমিট> <ফাইল>" এর মতোই কাজ করে।
জাকুব নরবস্কি

4
যদি আপনার প্রশ্নটি হেড ~ 43 সিনট্যাক্স সম্পর্কে (গিট-রেভ-পার্সে নথিভুক্ত) হয় তবে এই সমস্যাটি সম্পর্কে জিজ্ঞাসা করুন, সম্পর্কিত উত্তর সম্পর্কিত কোনও বিষয়ে নয় যার উত্তর আপনি জানেন। "হেড ~ 45 এর অর্থ কী, এবং ফাইলের নির্দিষ্ট সংস্করণটি কীভাবে সন্ধান করতে হয়"
জাকুব নরবস্কি

lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/… এবং lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/git- অনুসারে পুনর্নির্মাণ html , "গিট রিসেট <কমিট> <ফাইল>" "গিট চেকআউট <কমিট> <ফাইল>": "গিট রিসেট <কমিট> <ফাইল>" ফেরত <ফাইল> সূচীতে ঠিক একই রকম হয় না কার্যকারী ট্রিটিতে <কমিট> থেকে <ফাইল> স্পর্শ না করে, তবে "গিট চেকআউট <কমিট> <ফাইল>" <কমিট> থেকে <ফাইল> এর সূচক আপডেট করে এবং তারপরে কার্যকারী ট্রিতে <ফাইল> আপডেট করে।
yoda

4
নিচে উত্তর কোন উত্তর দিলেন আপনার প্রশ্নের পথে স্ট্যাক ওভারফ্লো কাজ করে, আপনি পাশে চেকমার্ক ক্লিক করে উত্তর "স্বীকার করুন" চাই; বিশদ এখানে । তবে কেবল যদি আপনার প্রশ্নের উত্তর দেওয়া হয়; যদি তা না হয় তবে প্রশ্নটিতে আরও বিশদ এবং / অথবা উত্তরগুলি কী স্পষ্ট নয় (এখনও স্পষ্ট নয়) যুক্ত করার বিষয়ে বিবেচনা করুন।
টিজে ক্রাউডার

উত্তর:


106

আপনি কি জানেন যে প্রতিশ্রুতিবদ্ধ (যেমন: নির্দিষ্ট সংশোধন) ফাইলটি অন্তর্ভুক্ত? তারপরে:

git checkout <commit> <file>

অন্য আদেশ:

git checkout HEAD~N <file>

আপনি যখন কোনও ব্যাপ্তির পিছনে ফাইলটির একটি সংস্করণ পেতে চান (তখন যা আমি নস্টালজিয়ায় করি) Is


19

HEAD~43কেবল বৃক্ষযুক্ত, সুতরাং আপনি একটি হ্যাশ বা ট্যাগ ব্যবহার করতে পারেন। আপনার সাথে ফাইলনেস থেকে গাছ গাছ আলাদা করতে --হবে, অন্যথায় এটি ফাইলের নাম হিসাবে বিবেচিত হবে। উদাহরণ স্বরূপ.

git checkout v0.45 -- filename
git checkout HEAD^ -- filename
git checkout 16bb1a4eeaa9 -- filename

2

HEAD~43ফাইলের কমিট (সংস্করণ) বোঝায়। পরিবর্তে, আপনি git logফাইলটিতে করা থেকে প্রাপ্ত প্রতিশ্রুতি হ্যাশটি ব্যবহার করতে পারেন । আপনি যদি কেবল ফাইলটি চান তবে আপনার এটি চালানোর দরকার নেই git reset; এটি কেবলমাত্র প্রয়োজনীয় যদি আপনি ফাইলটি বর্তমান হেডে ফরোয়ার্ড-পোর্ট করতে চান।

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