আপনার ম্যাকে একটি বিদ্যমান sparse checkout-এ একটি ডিরেক্টরি যোগ করতে, Terminal খুলুন, রিপোজিটরির রুটে যান এবং git sparse-checkout add 'path/to/directory' চালান। Git অন্যান্য sparse-checkout সিলেকশনগুলো অক্ষুণ্ণ রেখে সেই ডিরেক্টরির অধীনে থাকা ট্র্যাক করা ফাইলগুলোকে ওয়ার্কিং ট্রিতে উপলব্ধ করে। রিপোজিটরিটি যদি ইতিমধ্যে sparse না থাকে, তবে cone মোড সক্রিয় করতে এবং ডিরেক্টরিটি বেছে নিতে git sparse-checkout set --cone 'path/to/directory' ব্যবহার করুন; এটি সিলেকশন সেট করে, তাই এটি ওয়ার্কিং ট্রি থেকে অন্যান্য ট্র্যাক করা ফাইল সরিয়ে ফেলতে পারে।
কমান্ডটি চালানোর আগে
Sparse checkout পরিবর্তন করে যে একটি রিপোজিটরির ওয়ার্কিং ট্রিতে কোন কোন ট্র্যাক করা ফাইল দৃশ্যমান হবে। নির্বাচিত এলাকার বাইরের ফাইলগুলো Git দ্বারা ট্র্যাক করা অবস্থাতেই থাকে; সেগুলো রিপোজিটরির হিস্ট্রি থেকে মুছে ফেলা হয় না। ডিফল্ট cone মোডে, Git একটি নির্বাচিত ডিরেক্টরির অধীনস্থ সবকিছু অন্তর্ভুক্ত করে, সাথে এর প্যারেন্ট ডিরেক্টরিগুলোর ভেতরে সরাসরি থাকা ফাইল এবং রিপোজিটরির রুটের ফাইলগুলোও অন্তর্ভুক্ত করে। এর অর্থ হলো একটি নেস্টেড ডিরেক্টরি যোগ করলে আশেপাশের শীর্ষ-স্তরের (top-level) বা প্যারেন্ট-স্তরের ফাইলগুলোও দৃশ্যমান হতে পারে। Git-এর sparse-checkout ম্যানুয়াল
Terminal খুলুন এবং Git উপলব্ধ আছে কিনা তা পরীক্ষা করুন, তারপর রিপোজিটরির ভেতরে যান। উদাহরণস্বরূপ, নমুনা পাথটির পরিবর্তে আপনার চেকআউটের অবস্থান দিন:
git --version
cd "$HOME/Projects/sample-repo"
git status --short
Git কমান্ড-লাইন টুল ইনস্টল না থাকা একটি ম্যাকে git রান করলে Apple-এর Command Line Tools ইনস্টল করার অনুরোধ আসতে পারে। macOS-এর প্রম্পট অনুসরণ করুন, তারপর আবার git --version চালান। Apple: Installing the Command Line Tools
Sparse সিলেকশন পরিবর্তন করার আগে স্থানীয় পরিবর্তনগুলো পরীক্ষা করতে git status --short ব্যবহার করুন। গুরুত্বপূর্ণ আনকমিটেড বা আনট্র্যাকড কাজ নিরাপদে সংরক্ষণ করুন, বিশেষ করে যদি এটি এমন একটি ডিরেক্টরির ভেতরে থাকে যা বাদ পড়ে যেতে পারে। রিপোজিটরির ভেতর থেকে sparse-checkout কমান্ডগুলো চালান এবং এর রুটের সাপেক্ষে পাথ ব্যবহার করুন। যেসব পাথে স্পেস বা শেল মেটাক্যারেক্টার রয়েছে সেগুলো কোটেশনের মধ্যে রাখুন, যেমনটি উদাহরণে দেখানো হয়েছে, যাতে zsh বা bash পাথটিকে Git-এর কাছে একটিমাত্র আর্গুমেন্ট হিসেবে পাঠায়।
একটি বিদ্যমান sparse checkout-এ একটি ডিরেক্টরি যোগ করুন
Sparse checkout যদি ইতিমধ্যে সক্রিয় থাকে, তবে এই কমান্ডটি দিয়ে ডিরেক্টরিটি যোগ করুন:
git sparse-checkout add 'Packages/Map View'
রিপোজিটরিতে যেভাবে আছে ঠিক সেভাবে Packages/Map View-এর স্থানে ডিরেক্টরি পাথটি দিন। Cone মোডে, এটি অন্যান্য নির্বাচিত ডিরেক্টরিগুলোকে প্রতিস্থাপন না করে বর্তমান সিলেকশনে সেই ডিরেক্টরিটিকে যোগ করে। Git-এর নথিপত্র অনুসারে add-এর জন্য একটি বিদ্যমান sparse checkout থাকা প্রয়োজন; এটি সিলেকশন এবং ওয়ার্কিং ট্রি আপডেট করে। Git sparse-checkout কমান্ড রেফারেন্স
পরবর্তীতে নির্বাচিত ডিরেক্টরিগুলো পরিদর্শন করতে, চালান:
git sparse-checkout list
git status --short
এই তালিকাটি sparse-checkout ডিরেক্টরিগুলো দেখায়। ট্র্যাক করা বা আনট্র্যাক করা ফাইল পরিবর্তিত হয়েছে কিনা তা দেখতে স্ট্যাটাস সাহায্য করে; কেবল sparse সিলেকশনের বাইরে থাকার কারণে বাদ দেওয়া ট্র্যাক করা ফাইলগুলোকে এটি ডিলিট হিসেবে প্রদর্শন করে না।
এটি যদি একটি সাধারণ চেকআউট হয়
একটি সম্পূর্ণ চেকআউটকে যদি আপনি একটি নির্বাচিত ডিরেক্টরি ধারণকারী sparse checkout-এ রূপান্তর করতে চান, তবে set ব্যবহার করুন:
git sparse-checkout set --cone 'Packages/Map View'
আপনার প্রদান করা পাথগুলো থেকে set sparse সিলেকশন তৈরি করে। এটি একটি সাধারণ সম্পূর্ণ চেকআউট থেকে অন্যান্য ডিরেক্টরিগুলোকে অতিরিক্ত সিলেকশন হিসেবে সংরক্ষণ করে না। আপনার যদি একাধিক ডিরেক্টরির প্রয়োজন হয়, তবে একই কমান্ডে প্রতিটিকে অন্তর্ভুক্ত করুন, উদাহরণস্বরূপ git sparse-checkout set --cone 'Packages/Map View' 'Docs'। Git sparse-checkout কমান্ড রেফারেন্স
সিলেকশন পরিবর্তন করলে ওয়ার্কিং ট্রি থেকে ফাইলগুলো মুছে যেতে পারে। Git-এর নথিপত্রে আরও উল্লেখ করা হয়েছে যে, cone-mode সিলেকশন পরিবর্তন করার সময় এটি এমন ডিরেক্টরিগুলোর ইগনোর করা ফাইল ডিলিট করে দিতে পারে যেগুলোতে আর কোনো ট্র্যাক করা বা নন-ইগনোরড আনট্র্যাকড ফাইল নেই। set চালানোর আগে আপনার স্ট্যাটাস পরীক্ষা করুন এবং প্রয়োজনীয় স্থানীয় ফাইলগুলো সুরক্ষিত রাখুন; Git যদি সতর্ক করে যে আনট্র্যাক করা ফাইলগুলো ক্লিনআপে বাধা দিচ্ছে, তবে জোরপূর্বক মুছে ফেলার পরিবর্তে সেই ফাইলগুলো পরীক্ষা করুন। Git sparse-checkout ম্যানুয়াল
Git কোনো সমস্যা রিপোর্ট করলে
git sparse-checkout add যদি বলে যে রিপোজিটরিটি sparse checkout-এ নেই, তবে আপনি ওয়ার্কিং ট্রি সীমিত করতে চান কিনা তা ঠিক করুন। এটি করতে উপরের set --cone কমান্ডটি ব্যবহার করুন। আপনি যদি বর্তমানের সব ডিরেক্টরি রেখে কেবল একটি নতুন ডিরেক্টরি যোগ করতে চেয়ে থাকেন, তবে প্রথমে আপনি যে ডিরেক্টরিগুলো রাখতে চান তা চিহ্নিত করুন, তারপর সেগুলোর সবকটি এবং নতুন ডিরেক্টরিটি একসাথে set --cone-এ পাস করুন।
যোগ করার পরে যদি কোনো পাথ উপস্থিত না থাকে, তবে রিপোজিটরির ট্র্যাক করা পাথের সাথে বানান এবং ক্যাপিটালাইজেশন মিলিয়ে নিন এবং বর্তমান ব্রাঞ্চে এটি বিদ্যমান কিনা তা পরীক্ষা করুন। Sparse checkout কেবল ট্র্যাক করা পাথগুলো নির্বাচন করে; এটি কোনো অনুপস্থিত ডিরেক্টরি তৈরি করে না বা স্বয়ংক্রিয়ভাবে কোনো সাবমডিউল ইনিশিয়ালাইজ করে না। Git নথিপত্রে সাবমডিউল ইনিশিয়ালাইজেশনকে একটি পৃথক অপারেশন হিসেবে উল্লেখ করা হয়েছে। Git sparse-checkout ম্যানুয়াল
Sparse checkout নিয়ন্ত্রণ করে যে Git ওয়ার্কিং ট্রিতে কোন কোন ফাইল রাখবে; এটি শুধুমাত্র একটি ডিরেক্টরি ক্লোন করা বা রিপোজিটরি থেকে অন্যান্য ডিরেক্টরি মুছে ফেলার মতো নয়। সার্ভার থেকে ডাউনলোড করা অবজেক্ট সীমিত করার জন্য Git আলাদা partial-clone ফিল্টার সমর্থন করে, তবে এর প্রাপ্যতা এবং প্রভাব ক্লোন ও সার্ভারের কনফিগারেশনের ওপর নির্ভর করে। git clone --sparse অপশনটি শীর্ষ-স্তরের ফাইলগুলো দিয়ে শুরু হয় এবং এটি একটি নতুন ক্লোনের জন্য আরেকটি ওয়ার্কফ্লো। Git clone নথিপত্র