বাংলা

GIT — Git

GIT একটি Git রিপোজিটরি ফোল্ডারের মতো ঘুরে দেখা যায়: বদলানো ফাইল, শাখা, ইতিহাস।

একটি রিপোজিটরি খোলা

বারের GIT বোতাম প্রিয় প্রকল্পে লাফ দেয়; তার ডান ক্লিক তালিকা দেয়: পরিচিত রিপোজিটরি, “কমিট”, “ইতিহাস…”, শাখা, “স্ট্যাশ…” ও “স্ট্যাশ”, “ট্যাগ…”, “রিমোট”। ডিস্কের যে ফোল্ডার এখনও রিপোজিটরি নয়, সেখানে “এখানে ক্লোন করুন” প্রস্তাব করা হয়। প্রকল্পগুলো সেখানে ঢুকলেই নিজে যোগ হয়, আর যে প্রকল্পের ফোল্ডার হারিয়ে গেছে তা ভুলে যাওয়া হয় — যদি না তার ডিস্কই অনুপস্থিত থাকে, কারণ খুলে নেওয়া পেনড্রাইভ কিছু ভোলায় না।

একটি ফোল্ডারের অবস্থা

প্রতিটি লাইনের নিজের রং আছে: সংঘাতে, অনুসৃত নয়, পরিবর্তিত, মঞ্চস্থ, উপেক্ষিত। git একটি ফাইলকে দুই অক্ষে বর্ণনা করে — ইনডেক্স ও কাজের কপি — আর একটি লাইনে দুটি দেখানোর জায়গা নেই: রং ঠিক করে এখনও কী করা বাকি। পথরেখা বর্তমান শাখা জানায়।

প্রস্তুত করা ও কমিট

“কমিট” পরিবর্তনের দৃশ্য খোলে: প্রতি লাইনে একটি ফাইল, অনুসৃত কলাম জানায় git এর সম্পর্কে কী জানে। লাইন বাছা হয় অন্য সবখানের মতোই — ক্লিক, Ctrl+ক্লিক, Shift+ক্লিক —, বার্তা লেখা হয় নিচে, আর কমিট যায় যা নির্বাচিত তা নিয়ে। কিছু নির্বাচিত না হলে কিছুই যায় না: বোতাম তা জানায়।

কমিট বারের ট্র্যাক নয় বোতামটি git যা ট্র্যাক করে না তা লুকায়: ফেলে দেওয়ার মতো ফাইলে ভরা ফোল্ডার আর কমিট করতে চাওয়া দুটি ফাইলকে ঢেকে দেয় না, আর Ctrl+A সেগুলো সঙ্গে নেয় না। বন্ধ থাকলে এটি জানায় কতগুলো লুকানো আছে।

একটি রিপোজিটরির পরিবর্তনের দৃশ্য: তিনটি ফাইল, তাদের অনুসরণের অবস্থা, আর নিচে কমিটের বার।
রিপোজিটরির পরিবর্তন, এবং কমিটের বার: বার্তা, যা নির্বাচিত, আর বোতাম।

পার্থক্য দেখা

“পার্থক্য দেখান” diff খোলে খণ্ডে খণ্ডে, কাজের কপি, ইনডেক্স (মঞ্চস্থ) ও একটি কমিটের মধ্যে — আগে ও পরে সেখানে নাম ধরে বলা হয়। বাইনারি ফাইল হলে হিজিবিজি না দেখিয়ে সে কথাই জানায়।

ইশারা

শাখা ও ইতিহাস

একটি শাখা তৈরি করা, তাতে যাওয়া, মেলানো — এন্ট্রিতে শাখার নাম থাকে, আর সে উত্তর দেয় মেলানোর কিছু নেই: আগে থেকেই হালনাগাদ বা মেলানো থেমে গেছে: কিছু ফাইল সংঘাতে আছে। “ইতিহাস…” কমিটগুলো তালিকা করে: তাদের ছোট হ্যাশ, বিষয়, লেখক, তারিখ। বাঁ দিকের ফালি গ্রাফ আঁকে, প্রতিটি লাইন নিজের কলামে, আর একটি মার্জ পাশের কলামের দিকে তার রেখা টানে। ডাবল ক্লিকে একটি কমিটের বিস্তারিত খোলে: তার পূর্ণ বার্তা এবং যেসব ফাইলে সে হাত দিয়েছে।

একটি রিপোজিটরির ইতিহাস: চারটি কমিট, তাদের বিষয়, তাদের লেখক, আর পাশের ফালিতে শাখার গ্রাফ।
ইতিহাস, পাশের ফালিতে তার গ্রাফ: একই মূল থেকে বেরোনো দুটি শাখা, আর তাদের মিলিয়ে দেওয়া মার্জ।

মার্জ রিকোয়েস্ট ট্রি

GIT বোতামের মেনুতে মার্জ রিকোয়েস্ট ট্রি… রিমোট যে GitLab প্রকল্প দেখায় তার খোলা MR আঁকে। প্রতিটি MR যে শাখা থেকে শুরু হয়েছে তার নিচে থাকে, সূচিপত্রের মতো এক ধাপ ভেতরে: ধাপ বলে কোন ক্রমে অনুমোদন করতে হবে, আর কার্ডে ক্লিক করলে MR ব্রাউজারে খোলে।

একটি রিপোজিটরির মার্জ রিকোয়েস্ট ট্রি: main, ভেতরে সরানো MR, আর একে অপর থেকে বেরোনো তিনটি MR-এর শৃঙ্খল
!31 বেরিয়েছে !28 থেকে, আর !35 বেরিয়েছে !31 থেকে: প্রতিটি সেই MR-এর নিচে থাকে যার কমিট সেটি বহন করে, “এর পরে” ও “লক্ষ্য main” সহ। ডানের বোতাম শাখাটির চেকআউট করে; টিক চিহ্ন দেখায় main, যেখানে আপনি আছেন।

দূরবর্তী রিপোজিটরির সঙ্গে আদান-প্রদান

“পুল” ও “পুশ”, লেবেলের পাশে বিবেচ্য কমিটের সংখ্যাসহ — শূন্য লেখা হয় না। যে শাখা ওপারে এখনও নেই তা তার আপস্ট্রিমসহ যায়। দূরবর্তী রিপোজিটরিগুলো একই মেনু থেকে ঘোষণা ও সরানো হয়। সার্ভার পরিচয় যাচাইয়ের কিছু চাইলে Meneaufile নিজেও তা জিজ্ঞাসা করে, কিছু না বলে আটকে না থেকে।

সরিয়ে রাখা

“স্ট্যাশ…” চলতি কাজ কমিট না করেই গুছিয়ে রাখে, একটি ঐচ্ছিক বিবরণসহ; “স্ট্যাশ” — সরিয়ে রাখা কাজ — যা অপেক্ষায় আছে তা তালিকা করে, আর সেখান থেকে তা ফিরিয়ে নেওয়া বা ফেলে দেওয়া যায়। “ট্যাগ…” একইভাবে ট্যাগ বসায় ও সরায়।

এই লাইনটি কে লিখেছে

ফাইলের মেনুতে “লাইন-ভিত্তিক ইতিহাস” প্রতিটি লাইনকে তার কমিট ও লেখকের সঙ্গে জুড়ে দেয়। কোনো অবাক করা লাইনের সামনে মানুষ এই প্রশ্নই করে, আর কমিটের তালিকা তার উত্তর দেয় না।

সংঘাত

সংঘাতে থাকা ফাইল তার সংস্করণগুলো নিয়ে খোলে: সাধারণ সংস্করণ, আমাদের, তাদের, আর ফল যা গড়ে তোলা হচ্ছে। “সব নিন” একটি পুরো পাশ ঢেলে দেয়, “মেটান” সংরক্ষণ করে — আর ফাইলটি সংঘাতে শ্রেণি ছেড়ে যায়।

ক্লোন করা

একটি ফোল্ডার থেকে: ঠিকানা (https://… বা git@host:org/repo.git), যে ফোল্ডার তৈরি হবে তার নাম, আর একটি পূর্ণ বা অগভীর ইতিহাস — শেষ N টি কমিট।

বান্ডেল

একটি .bundle ফাইল হলো একটিমাত্র ফাইলে বাঁধা একটি Git রিপোজিটরি: সার্ভার ছাড়াই একটি প্রকল্প পেনড্রাইভে নিয়ে যাওয়া বা কাউকে দেওয়ার জন্য যথেষ্ট। ডাবল ক্লিক জানায় তাতে কী আছে — তার শাখা, তার ট্যাগ — আর এখানে ক্লোন করুন… তাকে তার পাশেই, নেটওয়ার্ক ছাড়া, একটি সাধারণ রিপোজিটরি বানিয়ে দেয়। কোনো রিপোজিটরিতে, GIT মেনুর একটি বান্ডেল তৈরি করুন… পুরো রিপোজিটরিটিকে অন্য দৃশ্যের ফোল্ডারে বেঁধে দেয়।

git না থাকলে

Meneaufile সিস্টেমের git ডাকে। অনুপস্থিত বা PATH-এর বাইরে হলে বিনা কারণে ব্যর্থ না হয়ে সে তা জানায়।

Meneaufile ম্যানুয়াল, বাংলায়।