GIT — Git
GIT একটি Git রিপোজিটরি ফোল্ডারের মতো ঘুরে দেখা যায়: বদলানো ফাইল, শাখা, ইতিহাস।
একটি রিপোজিটরি খোলা
বারের GIT বোতাম প্রিয় প্রকল্পে লাফ দেয়; তার ডান ক্লিক তালিকা দেয়: পরিচিত রিপোজিটরি, “কমিট”, “ইতিহাস…”, শাখা, “স্ট্যাশ…” ও “স্ট্যাশ”, “ট্যাগ…”, “রিমোট”। ডিস্কের যে ফোল্ডার এখনও রিপোজিটরি নয়, সেখানে “এখানে ক্লোন করুন” প্রস্তাব করা হয়। প্রকল্পগুলো সেখানে ঢুকলেই নিজে যোগ হয়, আর যে প্রকল্পের ফোল্ডার হারিয়ে গেছে তা ভুলে যাওয়া হয় — যদি না তার ডিস্কই অনুপস্থিত থাকে, কারণ খুলে নেওয়া পেনড্রাইভ কিছু ভোলায় না।
একটি ফোল্ডারের অবস্থা
প্রতিটি লাইনের নিজের রং আছে: সংঘাতে, অনুসৃত নয়, পরিবর্তিত, মঞ্চস্থ, উপেক্ষিত। git একটি ফাইলকে দুই অক্ষে বর্ণনা করে — ইনডেক্স ও কাজের কপি — আর একটি লাইনে দুটি দেখানোর জায়গা নেই: রং ঠিক করে এখনও কী করা বাকি। পথরেখা বর্তমান শাখা জানায়।
প্রস্তুত করা ও কমিট
“কমিট” পরিবর্তনের দৃশ্য খোলে: প্রতি লাইনে একটি ফাইল, অনুসৃত কলাম জানায় git এর সম্পর্কে কী জানে। লাইন বাছা হয় অন্য সবখানের মতোই — ক্লিক, Ctrl+ক্লিক, Shift+ক্লিক —, বার্তা লেখা হয় নিচে, আর কমিট যায় যা নির্বাচিত তা নিয়ে। কিছু নির্বাচিত না হলে কিছুই যায় না: বোতাম তা জানায়।
কমিট বারের ট্র্যাক নয় বোতামটি git যা ট্র্যাক করে না তা লুকায়: ফেলে দেওয়ার মতো ফাইলে ভরা ফোল্ডার আর কমিট করতে চাওয়া দুটি ফাইলকে ঢেকে দেয় না, আর Ctrl+A সেগুলো সঙ্গে নেয় না। বন্ধ থাকলে এটি জানায় কতগুলো লুকানো আছে।

পার্থক্য দেখা
“পার্থক্য দেখান” diff খোলে খণ্ডে খণ্ডে, কাজের কপি, ইনডেক্স (মঞ্চস্থ) ও একটি কমিটের মধ্যে — আগে ও পরে সেখানে নাম ধরে বলা হয়। বাইনারি ফাইল হলে হিজিবিজি না দেখিয়ে সে কথাই জানায়।
ইশারা
- বার্তাসহ কমিট।
- উপেক্ষা করুন: ফাইলটি
.gitignore-এ যোগ হয়। - Rollback: বাক্সটি জানায় কতগুলো নতুন ফাইল ডিস্ক থেকে যাবে আর কতগুলো রিপোজিটরির অবস্থায় ফিরবে। কমিট না করা কাজ হারিয়ে যায় — তা লেখা থাকে।
- কপি › ক্লিপবোর্ড: পরিবর্তনের একটি লাইন ডিস্কের একটি ফাইল ই, এবং সেভাবেই কপি হয় — অন্য কোথাও পেস্ট করার জন্য, Meneaufile-এর বাইরেও। কাটা বা পেস্ট নেই: তালিকা git নিজে আবার গড়ে, তার থেকে কোনো লাইন সরানো যায় না, আর তাতে কিছু লেখাও যায় না।
- অবস্থানে খুলুন: ফাইলটি তার লাইনের অন্য কোথাও আছে — লাইনটি বাস করে তালিকায়, ফাইলটি কাজের কপিতে, যেখানে তা সম্পাদনা করা হয়। এন্ট্রি সেখানেই নিয়ে যায়।
শাখা ও ইতিহাস
একটি শাখা তৈরি করা, তাতে যাওয়া, মেলানো — এন্ট্রিতে শাখার নাম থাকে, আর সে উত্তর দেয় মেলানোর কিছু নেই: আগে থেকেই হালনাগাদ বা মেলানো থেমে গেছে: কিছু ফাইল সংঘাতে আছে। “ইতিহাস…” কমিটগুলো তালিকা করে: তাদের ছোট হ্যাশ, বিষয়, লেখক, তারিখ। বাঁ দিকের ফালি গ্রাফ আঁকে, প্রতিটি লাইন নিজের কলামে, আর একটি মার্জ পাশের কলামের দিকে তার রেখা টানে। ডাবল ক্লিকে একটি কমিটের বিস্তারিত খোলে: তার পূর্ণ বার্তা এবং যেসব ফাইলে সে হাত দিয়েছে।

মার্জ রিকোয়েস্ট ট্রি
GIT বোতামের মেনুতে মার্জ রিকোয়েস্ট ট্রি… রিমোট যে GitLab প্রকল্প দেখায় তার খোলা MR আঁকে। প্রতিটি MR যে শাখা থেকে শুরু হয়েছে তার নিচে থাকে, সূচিপত্রের মতো এক ধাপ ভেতরে: ধাপ বলে কোন ক্রমে অনুমোদন করতে হবে, আর কার্ডে ক্লিক করলে MR ব্রাউজারে খোলে।
- উৎস কমিট থেকে পড়া হয়। অন্য MR থেকে বেরোনো MR তার নিচে থাকে, দুটিই
mainলক্ষ্য করলেও: “!28-এর পরে” বলে কোনটি আগে অনুমোদন করতে হবে, আর “লক্ষ্য main” সতর্ক করে যে এটি এখনওmainলক্ষ্য করে — আগে মার্জ করলে অন্যটির কমিটও সঙ্গে চলে যাবে। - ব্যাজগুলো GitLab-এর দেওয়া অবস্থা দেখায়: খসড়া, দ্বন্দ্ব, রিবেস দরকার, অনুমোদন বাকি, খোলা আলোচনা, পাইপলাইন চলছে, প্রস্তুত।
- প্রতিটি কার্ডের উপরে ডানে চেকআউট বোতাম কাজের কপিকে MR-এর শাখায় নিয়ে যায়, যাতে অনুমোদনের আগে তা চেষ্টা বা পর্যালোচনা করা যায়। শাখাটি আগে সার্ভার থেকে আনা হয়; চলমান কাজ, যে কোনো শাখা বদলের মতো, সরিয়ে রাখার প্রস্তাব পায়। আপনি যে শাখায় আছেন তাতে টিক চিহ্ন থাকে।
- ব্যক্তিগত অ্যাক্সেস টোকেন,
read_apiঅধিকারসহ, GitLab-এ তৈরি হয়: User settings › Access › Personal access tokens › Generate token। Meneaufile এটি একবার চায় এবং ভল্টে নিজস্ব এন্ট্রিতে রাখে; অ্যাকাউন্টের পাসওয়ার্ড রাখা NET এন্ট্রিকে টোকেন ধরা হয় না।

main, যেখানে আপনি আছেন।দূরবর্তী রিপোজিটরির সঙ্গে আদান-প্রদান
“পুল” ও “পুশ”, লেবেলের পাশে বিবেচ্য কমিটের সংখ্যাসহ — শূন্য লেখা হয় না। যে শাখা ওপারে এখনও নেই তা তার আপস্ট্রিমসহ যায়। দূরবর্তী রিপোজিটরিগুলো একই মেনু থেকে ঘোষণা ও সরানো হয়। সার্ভার পরিচয় যাচাইয়ের কিছু চাইলে Meneaufile নিজেও তা জিজ্ঞাসা করে, কিছু না বলে আটকে না থেকে।
সরিয়ে রাখা
“স্ট্যাশ…” চলতি কাজ কমিট না করেই গুছিয়ে রাখে, একটি ঐচ্ছিক বিবরণসহ; “স্ট্যাশ” — সরিয়ে রাখা কাজ — যা অপেক্ষায় আছে তা তালিকা করে, আর সেখান থেকে তা ফিরিয়ে নেওয়া বা ফেলে দেওয়া যায়। “ট্যাগ…” একইভাবে ট্যাগ বসায় ও সরায়।
এই লাইনটি কে লিখেছে
ফাইলের মেনুতে “লাইন-ভিত্তিক ইতিহাস” প্রতিটি লাইনকে তার কমিট ও লেখকের সঙ্গে জুড়ে দেয়। কোনো অবাক করা লাইনের সামনে মানুষ এই প্রশ্নই করে, আর কমিটের তালিকা তার উত্তর দেয় না।
সংঘাত
সংঘাতে থাকা ফাইল তার সংস্করণগুলো নিয়ে খোলে: সাধারণ সংস্করণ, আমাদের, তাদের, আর ফল যা গড়ে তোলা হচ্ছে। “সব নিন” একটি পুরো পাশ ঢেলে দেয়, “মেটান” সংরক্ষণ করে — আর ফাইলটি সংঘাতে শ্রেণি ছেড়ে যায়।
ক্লোন করা
একটি ফোল্ডার থেকে: ঠিকানা (https://… বা git@host:org/repo.git), যে ফোল্ডার তৈরি হবে তার নাম, আর একটি পূর্ণ বা অগভীর ইতিহাস — শেষ N টি কমিট।
বান্ডেল
একটি .bundle ফাইল হলো একটিমাত্র ফাইলে বাঁধা একটি Git রিপোজিটরি: সার্ভার ছাড়াই একটি প্রকল্প পেনড্রাইভে নিয়ে যাওয়া বা কাউকে দেওয়ার জন্য যথেষ্ট। ডাবল ক্লিক জানায় তাতে কী আছে — তার শাখা, তার ট্যাগ — আর এখানে ক্লোন করুন… তাকে তার পাশেই, নেটওয়ার্ক ছাড়া, একটি সাধারণ রিপোজিটরি বানিয়ে দেয়। কোনো রিপোজিটরিতে, GIT মেনুর একটি বান্ডেল তৈরি করুন… পুরো রিপোজিটরিটিকে অন্য দৃশ্যের ফোল্ডারে বেঁধে দেয়।
git না থাকলে
Meneaufile সিস্টেমের git ডাকে। অনুপস্থিত বা PATH-এর বাইরে হলে বিনা কারণে ব্যর্থ না হয়ে সে তা জানায়।
Meneaufile ম্যানুয়াল, বাংলায়।