Git কি জিনিস ??
Git হচ্ছে open-source version control system.
- “ki bollen kichuy bujhlam na bhay 🤔” (আমি নিজেও আগে জানার পর এটাই বলেছিলাম।)
তাহলে আমরা শব্দ গুলো ভেঙ্গে ভেঙ্গে বুঝার চেষ্টা করি। open-source software বলতে সে সকল software কে বুঝায় যেটা শতভাগ ফ্রি এবং এটার source code public use এর জন্য উন্মুক্ত। কেউ চাইলে এ কোড modify করে আবার redistribute করতে পারে। git, gnu general public license version 2.0, এর অধিনে রিলিজ হয়েছে (random fact, এটা যে মনে রাখতে হবে এইরকম কিছু না) ।
এবার আসি version control system বলতে কি বুঝায়। version control system একটা ডেভেলপারকে মঙ্গল করে তার প্রোজেক্টের code tracking করতে এবং তা ইজিলি manage করতে। এ জিনিসটা করা যেতে পারে branching এবং merging এর মাধ্যমে। branch বলতে বুঝায় বৃহৎ code base এর ছোট ১টি আংশকে। আর merge করা বলতে বুঝায় আলাদ আলাদা দুটি branch এর মধ্যে সংযোগ স্থাপন করা।
একটা উদাহরণ দেখলে আমরা আরো ক্লিয়ার হবো। মনে করি ফাহিম ভাই, মিজান ভাইয়া এবং হামিম ভাই google এ জব পেয়ে গেলেন। বর্তমানে উনারা কাজ করতে গেলে তো google এর production code এ সরাসরি কাজ করা আরম্ভ করবেন না। উনারা প্রথমে google এর ছোটো একটি আংশ (branching) আলাদা করে নিবেন। এরপর প্রত্যেকে আলাদা ভিন্ন branch নিয়ে কাজ শুরু করবেন। কাজ শেষে প্রতেক্যের কোড পাশাপাশি এক জায়গায় অচেতন করবেন (merging)। তারপর এ কোড গুলো ঠিক ভাবে কাজ করছে কিনা চেক করে google এর যে production branch আছে সেখানে merge করে দিবেন।
এভাবে কাজ করার সুবিধা হচ্ছে প্রত্যকে নিজের কাজের progress track রাখতে পারবেন এবং কোথাও ভূল হলে আবার তৎকালীন কোডে ফিরে যেতে পারবেন, কারণ git প্রত্যক change এর একটা snapshot রেখে দেয়, মুলত এই কারণেই একে version control system জানানো হয়ে থাকে। আরো দারুন একটা ব্যপার হলো যে প্রত্যক branch isolated. তার মানে কোনো branch এ একটা bug দেখা দিলে... Bug এর কথা বাদ, atom bomb পড়লেও অন্য ব্রাঞ্চে এটার কোনো effect পড়বেনা। সব ঠিকঠাক ভাবে কাজ করবে।
“খুব রমণীয় কিন্তু branching / merging কি ভাবে করব?” ঈশ্বর বাচাইলে প্রকাশ্যে এগুলো নিয়ে discuss করা হবে।
#github #git #akramHoshen #akramhoshenofficial #webDesign #webDevelopment