গিটহাব ও দূরবর্তী রিপোজিটরি: আপনার কোড ক্লাউডে
আমরা এখন স্থানীয় কাজ থেকে দলগত কাজে যাচ্ছি: বুঝে নিন remote কী, কীভাবে স্থানীয় রিপোজিটরিকে গিটহাবের সাথে সংযুক্ত করবেন এবং push, pull ও fetch-এর মধ্যে পার্থক্য কী — তিনটি কমান্ড যা প্রায়শই বিভ্রান্তি সৃষ্টি করে। আলাদাভাবে SSH কী-এর মাধ্যমে প্রমাণীকরণ নিয়ে আলোচনা করব, কারণ নিয়োগকর্তারা আশা করেন যে আপনি নিজেই এটি সেট আপ করতে পারবেন।
- আপনি গিটহাবে একটি রিপোজিটরি তৈরি করতে, সেটিকে স্থানীয় প্রজেক্টের সাথে সংযুক্ত করতে এবং push কমান্ডের মাধ্যমে পরিবর্তন প্রকাশ করতে সক্ষম হবেন।
- আপনি fetch এবং pull-এর মধ্যে পার্থক্য বুঝতে পারবেন এবং দলগত কাজে সচেতনভাবে এগুলোর মধ্যে নির্বাচন করতে পারবেন।
- আপনি পাসওয়ার্ড ছাড়াই গিটহাবের সাথে SSH প্রমাণীকরণ সেট আপ করবেন — যেমনটি পেশাদাররা করে থাকেন।
จุดเริ่มต้นของบทเรียน
কেন দূরবর্তী রিপোজিটরি প্রয়োজন?
- স্থানীয় রিপোজিটরি শুধু আপনার কম্পিউটারে
- দূরবর্তী রিপোজিটরি টিমের জন্য ক্লাউড স্টোরেজ
- সবাই এক জায়গায় পরিবর্তন দেখে এবং করে
- ইন্টারনেটের মাধ্যমে রিয়েল-টাইম সিঙ্ক্রোনাইজেশন
ধরুন, আপনি একা একটি প্রকল্পে কাজ করছেন—সেক্ষেত্রে Git-এর স্থানীয় স্টোরেজই যথেষ্ট। কিন্তু যখনই টিম কাজে যোগ দেয়, তখন একটি সাধারণ জায়গার প্রয়োজন হয়। দূরবর্তী রিপোজিটরি কোড সংরক্ষণের কেন্দ্রবিন্দুতে পরিণত হয়, যা প্রতিটি সদস্যের জন্য অ্যাক্সেসযোগ্য। এটি Google ডক্স-এর মতো, যেখানে সব সম্পাদনা রিয়েল-টাইমে সিঙ্ক হয়। আপনি সহকর্মীদের পরিবর্তন দেখতে পারেন, পুল রিকোয়েস্টের মাধ্যমে কোড নিয়ে আলোচনা করতে পারেন এবং আলাদা ফিচারে সমান্তরালভাবে কাজ করতে পারেন। দূরবর্তী রিপোজিটরি ছাড়া টিম ডেভেলপমেন্ট পাঠানো আর্কাইভ এবং অসীম ফাইল সংস্করণের বিশৃঙ্খলায় পরিণত হবে।
স্থানীয় এবং দূরবর্তী স্টোরেজ কীভাবে সংযুক্ত
- Origin — ডিফল্ট দূরবর্তী রিপোজিটরির নাম
- Push — সার্ভারে পরিবর্তন পাঠানো
- Pull — সার্ভার থেকে পরিবর্তন আনা
- প্রতিটি রিপোজিটরি স্বাধীন এবং সম্পূর্ণ ইতিহাস ধারণ করে
আপনার কম্পিউটারে থাকা স্থানীয় রিপোজিটরি দুটি মূল কমান্ডের মাধ্যমে দূরবর্তী রিপোজিটরির সাথে ডেটা বিনিময় করে: push এবং pull। ডিফল্টভাবে প্রধান দূরবর্তী রিপোজিটরির নাম origin। কিন্তু বোঝা গুরুত্বপূর্ণ—এটি কেবল ফাইলের কপি নয়। প্রতিটি স্টোরেজ স্বাধীন এবং পরিবর্তনের সম্পূর্ণ ইতিহাস ধারণ করে। আপনি যখন স্থানীয়ভাবে কমিট করেন, সেগুলি কেবল আপনার কাছেই থাকে, যতক্ষণ না আপনি push কমান্ড দিয়ে পাঠান। আর যখন সহকর্মীরা কোড আপডেট করে, আপনি pull-এর মাধ্যমে সেটি নিয়ে আসেন, যাতে আপনার কাজ সিঙ্ক্রোনাইজ হয়।
একটি স্থানীয়, অনেক দূরবর্তী
- একাধিক দূরবর্তী রিপোজিটরি সংযুক্ত করা যায়
- Origin — GitHub-এ আপনার ব্যক্তিগত ফর্ক
- Upstream — প্রকল্পের মূল রিপোজিটরি
- সহজেই তাদের মধ্যে পরিবর্তন সিঙ্ক্রোনাইজ করা যায়
আপনার প্রকল্প একসাথে একাধিক দূরবর্তী রিপোজিটরির সাথে সংযুক্ত থাকতে পারে। ধরুন, origin হলো GitHub-এ আপনার ব্যক্তিগত ফর্ক, আর upstream হলো মূল প্রকল্পের রিপোজিটরি। এই কনফিগারেশন আপনাকে নিজের কপিতে পরিবর্তন করতে দেয়, পাশাপাশি মূল উৎস থেকে সহজেই আপডেট নিতে পারে। এটি বিশেষ করে ওপেন-সোর্স প্রকল্পে কাজ করার সময় উপযোগী, যেখানে নিজের ফর্ক আপডেট রাখা প্রয়োজন। আপনি নিজেই সিদ্ধান্ত নেন কখন এবং কোন পরিবর্তনগুলো upstream থেকে আপনার origin-এ আনবেন। এখন আমরা দূরবর্তী রিপোজিটরি নিয়ে কাজের লজিক বুঝেছি, তাই নিজের GitHub রিপোজিটরি তৈরি করার সময় এসেছে—এবং আমরা এখনই এটি করব।
# নতুন দূরবর্তী রিপোজিটরি যোগ করুন
git remote add upstream https://github.com/original/project.git
# সব দূরবর্তী রিপোজিটরির তালিকা দেখুন
git remote -v
# upstream থেকে লোকাল ব্রাঞ্চে পরিবর্তন আনুন
git fetch upstream
git checkout main
git merge upstream/main
# নিজের origin-এ পরিবর্তন পাঠান
git push origin main
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 30 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- কেন দূরবর্তী রিপোজিটরি প্রয়োজন?
- স্থানীয় এবং দূরবর্তী স্টোরেজ কীভাবে সংযুক্ত
- একটি স্থানীয়, অনেক দূরবর্তী
- GitHub-এ নতুন রিপোজিটরি তৈরি করুন
- README এবং লাইসেন্স—আপনার প্রথম কমিট
- স্থানীয় রিপোজিটরি GitHub-এর সাথে সংযুক্ত করুন
- রিপোজিটরি ক্লোনিং কী?
- ক্লোন করার দুটি পদ্ধতি: HTTPS এবং SSH
- অনুশীলন: রিপোজিটরি ক্লোন করা
- ক্লোন করার পর কনফিগারেশন চেক করুন
- কেন পাসওয়ার্ড GitHub-এর জন্য অসুবিধাজনক
- SSH কী কীভাবে কাজ করে
- SSH কী তৈরি করুন
- GitHub-এ কী যোগ করুন
- ক্লাউডে কোড পাঠান: git push
- আপস্ট্রিম শাখা সেটআপ করা
- পুশের সময় দ্বন্দ্ব সমাধান করা
- গিট পুল: ক্লাউডের সাথে সিঙ্ক্রোনাইজেশন
- গিট পুলের ভেতরে কীভাবে কাজ করে
- গিট পুলের সময় সাধারণ সমস্যা
- গিট পুল কেন বিপজ্জনক হতে পারে
- গিট ফেচ: নিরাপদে পরিবর্তন ডাউনলোড
- অনুশীলন: ফেচের মাধ্যমে পরিবর্তন দেখা
- কখন fetch вместо pull ব্যবহার করবেন
- অন্যের ব্রাঞ্চে Push: কেন এটি প্রক্রিয়া ভেঙে দেয়
- সঠিক উপায়: পরিবর্তনের জন্য নিজের ব্রাঞ্চ তৈরি করুন
- নীরব বিপর্যয়: যখন pull আপনার পরিবর্তন মুছে ফেলে
- রক্ষাকারী কমান্ড: git stash-এর ব্যবহার
- GitHub: আপনার কোডের ক্লাউড আলমারি
- SSH কী কনফিগার: আপনার ডিজিটাল পাস
- ফর্ক থেকে Pull Request: টিমে কাজ করা
- পুল রিকোয়েস্ট: সারমর্ম এবং সাধারণ পুশ থেকে পার্থক্য
- সারসংক্ষেপ এবং অ্যাসাইনমেন্ট
บทความเกี่ยวกับบทเรียนนี้
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
- git fetch และ git pull: ต่างกันอย่างไร และควรเลือกอะไร
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- รีโพซิทอรี Git: สร้างด้วย git init และเชื่อม remote อย่างไร
- git clone: วิธีโคลนรีโพซิทอรีจาก GitHub และที่อื่น
บทเรียนทั้งหมดในคอร์สนี้
- গিটের ভূমিকা: শুরু থেকে আত্মবিশ্বাসী ডেভেলপার পর্যন্ত
- কেন আদৌ Git প্রয়োজন — এবং কেন এটি ছাড়া চাকরি পাওয়া যায় না
- ইনস্টল এবং কনফিগারেশন: প্রথম চালানোর জন্য Git প্রস্তুত করা
- প্রথম রিপোজিটরি: init, add, commit এবং ইনডেক্সের যাদু
- ইতিহাস পড়া: log, diff, show এবং অতীতে নেভিগেশন
- শাখা: আপনার কোডের সমান্তরাল বাস্তবতা
- ভুল বাতিল: restore, reset, revert — সঠিক ও বিপজ্জনক ব্যবহার
- গিটহাব ও দূরবর্তী রিপোজিটরি: আপনার কোড ক্লাউডে
- দলগত কাজ: ফর্ক, ফিচার ব্রাঞ্চ এবং পুল রিকোয়েস্ট
- মার্জ কনফ্লিক্ট: আতঙ্কিত না হয়ে বুঝুন এবং সমাধান করুন
- বাস্তব দলে গিট প্রক্রিয়া: কোন ওয়ার্কফ্লো বেছে নেবেন
- উন্নত টুল: রিবেস, স্ট্যাশ, চেরি-পিক এবং ট্যাগ
- চূড়ান্ত প্রকল্প: বাস্তব দলগত উন্নয়ন সিমুলেশন