এই বিষয়গুলি সম্পর্কে আরও কয়েকটি ভাল রেফারেন্স:
আমি সূচিটি চেকপয়েন্ট হিসাবে ব্যবহার করি ।
আমি যখন এমন কোনও পরিবর্তন আনতে যাব যা উদ্বেগজনক হতে পারে - যখন আমি এমন কোনও দিক সন্ধান করতে চাই যখন আমি নিশ্চিত নই যে আমি এটি অনুসরণ করতে পারি বা এটি একটি ভাল ধারণা, যেমন একটি ধারণামূলকভাবে দাবি করা রিফ্যাক্টরিং বা একটি পরিবর্তন করার মতো উপস্থাপনের ধরণ - আমি সূচিগুলিতে আমার কাজটি চেকপয়েন্ট করি। আমি যদি আমার প্রথম প্রতিশ্রুতি দেওয়ার পরে এটিই প্রথম পরিবর্তন করি তবে আমি স্থানীয় সংগ্রহস্থলটিকে একটি চৌকি হিসাবে ব্যবহার করতে পারি, তবে প্রায়শই আমি একটি ধারণামূলক পরিবর্তন পেয়েছি যা আমি সামান্য পদক্ষেপের সেট হিসাবে বাস্তবায়ন করছি। আমি প্রতিটি পদক্ষেপের পরে চেকপয়েন্ট চাই, তবে আমি কাজ, পরীক্ষিত কোডে ফিরে না আসা পর্যন্ত প্রতিশ্রুতি সংরক্ষণ করুন।
মন্তব্য:
কর্মক্ষেত্র (উৎস) এর তালিকা গাছ ফাইল যেগুলি আপনি দেখতে এবং সম্পাদনা করুন।
সূচক একটি একক, বড়, বাইনারি ফাইল <baseOfRepo>/.git/index
, যা বর্তমান শাখায় সমস্ত ফাইল, তাদের তালিকা SHA1 চেকসাম, সময় স্ট্যাম্প এবং ফাইল নাম - এটা ফাইল একটি কপি সঙ্গে অন্য ডাইরেক্টরি নয়।
স্থানীয় সংগ্রহস্থলে একটি লুকানো ডিরেক্টরি (হয় .git
) একজন সহ objects
ডিরেক্টরির একটি সংকুচিত "ফোঁটা" ফাইল হিসাবে রেপো প্রতিটি ফাইল এর সব সংস্করণ (স্থানীয় শাখা এবং দূরবর্তী শাখা কপি) অংশগ্রহণ করেন।
রেপো ফাইলগুলির পৃথক অনুলিপি হিসাবে চিত্রটিতে উপস্থাপিত চারটি 'ডিস্ক' ভাবেন না।
এগুলি মূলত গিট কমিটের জন্য রেফারেন্স হিসাবে নামকরণ করা হয়। দুটি বড় ধরণের রেফ রয়েছে: ট্যাগ এবং হেড।
- ট্যাগগুলি নির্দিষ্ট রেফারেন্স যা ইতিহাসের একটি নির্দিষ্ট পয়েন্ট চিহ্নিত করে, উদাহরণস্বরূপ v2.6.29।
- বিপরীতে, মাথা বরাবর প্রকল্প বিকাশের বর্তমান অবস্থান প্রতিফলিত করতে সর্বদা সরানো হয়।
(দ্রষ্টব্য: টিমো হুভিনেনের মন্তব্য অনুসারে , সেই তীরগুলি যেটি প্রতিশ্রুতিবদ্ধ তা নয়, এটি কার্যপ্রবাহের ক্রম , মূলত প্রথমটি প্রতিশ্রুতিবদ্ধ এবং শেষটি কোথায় তা ती চিহ্ন দেখায় )1 -> 2 -> 3 -> 4
1
4
এখন আমরা জানি প্রকল্পে কী হচ্ছে।
তবে এখনই কী ঘটছে তা জানতে, এই মুহুর্তে হ্যাড নামে একটি বিশেষ রেফারেন্স রয়েছে। এটি দুটি প্রধান উদ্দেশ্যে কাজ করে:
- এটি গিটকে বলেছে যে আপনি যখন চেকআউট করবেন তখন থেকে ফাইলগুলি নিয়ে যাওয়ার প্রতিশ্রুতি দেয় এবং
- এটি গিটকে বলে যে আপনি যখন প্রতিশ্রুতিবদ্ধ তখন নতুন কমিটগুলি কোথায় রাখবেন।
আপনি যখন git checkout ref
এটি চালনা করেন তখন আপনার HEAD
মনোনীত রেফের দিকে ইঙ্গিত করে এবং এ থেকে ফাইলগুলি বের করে। আপনি যখন git commit
এটি চালান এটি একটি নতুন কমিট অবজেক্ট তৈরি করে, যা কারেন্টের সন্তানের হয়ে ওঠে HEAD
। সাধারণত HEAD
একটি মাথা দেখায়, তাই সবকিছু ঠিকঠাক কাজ করে।
HEAD
বর্তমান শাখার ডগায় কমিট করা। আপনি যদি কেবল শাখাটি পরীক্ষা করে দেখেছেন, অর্থাত্ কোনও সংশোধিত ফাইল নেই, তবে এর বিষয়বস্তু কার্যকারী গাছের সাথে মিলে। আপনি যে কোনও কিছু সংশোধন করার সাথে সাথে এটি আর মেলে না।