কম্পিউটার টিউটোরিয়াল

Git Push: পূর্ণ গাইড

git push কমান্ড আপনার রিপোজিটরির লোকাল ভার্সন একটি রিমোট রিপোজিটরিতে আপলোড করে। পুশিং হলো वो মেকানিজম যার মাধ্যমে আপনি একটি রিমোট রিপোজিটরিতে পরিবর্তন আপলোড করেন। একবার আপনি আপনার পরিবর্তনগুলো পুশ করলে, একটি প্রজেক্টের সব কোলাবোরেটর সেগুলো ডাউনলোড করতে পারেন।

একটি রিমোট রিপোজিটরিতে আপনার কোড পুশ করা আপনার Git রিপোজিটরিতে করা পরিবর্তনগুলো "সংরক্ষণ" করার চূড়ান্ত স্টেজ।

পুশিং প্রসেস কোড ট্রান্সফার করে আপনার লোকাল রিপোজিটরি—আপনার কম্পিউটার—থেকে আপনার লোকাল কোড जिसके সাথে অ্যাসোসিয়েটেড সেই রিমোট রিপোজিটরিতে। এটি আপনাকে একটি প্রজেক্টের মেইন রিপোজিটরিতে আপনার কোডবেসে করা পরিবর্তনগুলো সংরক্ষণ করতে দেয়।

এই টিউটোরিয়াল, উদাহরণসহ, কোড পুশ করার বেসিক এবং git push কমান্ড কীভাবে ব্যবহার করতে হয় তা আলোচনা করবে। এই টিউটোরিয়াল পড়া শেষে, আপনি git push কমান্ড ব্যবহার করে কোড পুশ করতে এক্সপার্ট হবেন।

কোড পুশ করা

Git-এ, "সংরক্ষণ" করা ফাইল সংরক্ষণ করার মতো সহজ নয়। যখন আপনি একটি Git রিপোজিটরিতে একটি ফাইল সংরক্ষণ করেন, পরিবর্তনগুলো আপনার কম্পিউটারে সংরক্ষণ হবে। কিন্তু, আপনার পরিবর্তনগুলো Git রিপোজিটরি দ্বারা ট্র্যাক হবে না। আপনাকে Git কে বলতে হবে যে আপনার পরিবর্তনগুলো ট্র্যাক করা উচিত।

পরিবর্তন ট্র্যাক করতে, আপনাকে প্রথমে git add কমান্ড ব্যবহার করতে হবে, যা আপনার কোডকে স্টেজিং এরিয়াতে যোগ করে। তারপর, আপনি git commit কমান্ড ব্যবহার করে আপনার করা পরিবর্তনগুলো একটি কমিটে সংরক্ষণ করতে পারেন।

একবার আপনি আপনার কোড একটি রিপোজিটরিতে কমিট করলে, আপনার করা পরিবর্তনগুলোর একটি রেকর্ড ট্র্যাক হবে। আপনাকে আপনার কোড পুশ করতে হবে আপনি একটি কমিট তৈরি করার পর যদি আপনি চান আপনার কমিটগুলো রিমোট রিপোজিটরিতে দেখাবে।

কোড পুশ করা আপনাকে আপনার লোকাল রিপোজিটরির একটি ভার্সনে করা কমিটগুলো একটি রিমোট রিপোজিটরিতে পাঠাতে দেয়। উদাহরণস্বরূপ, আপনি যদি একটি টিম প্রজেক্টে কাজ করেন, আপনি প্রথমে আপনার লোকাল মেশিনে একটি কমিট তৈরি করবেন। একবার আপনি সবার কাছে আপনার কোড দেখাতে রেডি হলে, আপনি সেটি রিমোট রিপোজিটরিতে পুশ করবেন যাতে প্রতিটি কোলাবোরেটর আপনার কোড দেখতে পারে।

git push কমান্ড কীভাবে ব্যবহার করবেন

git push কমান্ড আপনার লোকাল চেঞ্জগুলো একটি রিপোজিটরিতে থেকে একটি রিমোট রিপোজিটরিতে আপলোড করে। আপনার আপলোড করা চেঞ্জগুলো সকল প্রজেক্ট কোলাবোরেটরদের জন্য অ্যাক্সেসযোগ্য হবে যাতে সেগুলো ভিউ এবং ডাউনলোড করতে পারেন।

একদৃষ্টিতে, git push হলো git fetch-এর বিপরীত। git fetch কমান্ডটি একটি রিমোট রিপোজিটরিতে করা পরিবর্তনগুলো রিট্রিভ করতে ব্যবহৃত হয়। fetch কমান্ড সেই পরিবর্তনগুলো আপনার রিপোজিটরির একটি লোকাল কপিতে প্রয়োগ করে।

git push কমান্ডের সিনট্যাক্স নিম্নরূপ:

git push <remote name> <branch name>

আমাদের "remote name" প্যারামিটার হলো যে রিপোজিটরিতে আপনার কোড পুশ করা উচিত। আপনি যদি ইতিমধ্যে একটি রিপোজিটরি কনফিগার করে থাকেন, এটি "origin" সেট থাকবে। আপনি যদি অন্য একটি রিপোজিটরিতে কমিট করতে চান, আপনি "remote name" প্যারামিটার ব্যবহার করে সেটি স্পেসিফাই করতে পারেন।

"branch name" প্যারামিটার হলো রিমোট রিপোজিটরির সেই ব্রাঞ্চ যেটিতে আপনি আপনার চেঞ্জগুলো পুশ করতে চান।

ধরা যাক আমরা একটি লোকাল রিপোজিটরির চেঞ্জগুলো একটি রিমোট রিপোজিটরির "master" ব্রাঞ্চে পুশ করতে চাই। আমরা এটি এই কমান্ড দিয়ে করতে পারি:

git push origin master

কমান্ডটি ফেরত দেয়:

Counting objects: 4, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (4/4), 363 bytes | 363.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0) To https://github.com/jamesgallagher432/demo-repository.git 3b16026..b53b22d master -> master

এই উদাহরণে, আমাদের রিমোট রিপোজিটরি GitHub-এ সংরক্ষিত। আমাদের লোকাল রিপোজিটরিতে করা পরিবর্তনগুলো আমাদের প্রজেক্টের সাথে অ্যাসোসিয়েটেড রিমোট GitHub রিপোজিটরিতে পুশ করা হয়েছে।

এখন যেহেতু আমরা আমাদের পরিবর্তনগুলো পুশ করেছি, আমাদের লোকাল মেশিনের কোড আমাদের রিমোট রিপোজিটরির কোডের মতো একই। আমাদের কোড রিমোট রিপোজিটরিতে উপলব্ধ তাই আমাদের টিম মেম্বাররা আমাদের করা পরিবর্তনগুলো দেখতে পারবে।

বিকল্পভাবে, যদি আমরা আমাদের কোড "v1.9" ব্রাঞ্চে পুশ করতে চাইতাম, আমরা "master" এর বদলে ব্রাঞ্চ নাম "v1.9" স্পেসিফাই করতে পারতাম।

Git Push Force

যখন আপনি git push কমান্ড লাইন অপারেশন ব্যবহার করছেন, আপনি চাইতে পারেন পরিবর্তনগুলো বাধ্য করে একটি রিমোট রিপোজিটরিতে পুশ করা।

Git আপনাকে কোড একটি রিপোজিটরিতে পুশ করতে থেকে বাধা দেয় যখন একটি রিমোট এবং লোকাল ইতিহাসের মধ্যে কনফ্লিক্ট থাকে। যদি একটি রিমোট রিপোজিটরিতে ১০টি কমিট থাকে যা আপনার লোকাল মেশিনে রিফলেক্ট হয় না, আপনি আপনার কোড পুশ করতে পারবেন না।

--force ফ্ল্যাগ আপনাকে আপনার করা পরিবর্তনগুলো "ফোর্স পুশ" করতে দেয়। ফোর্স ফ্ল্যাগ যেকোনো পরিবর্তন ডিলিট করে যা আপনি লাস্ট কোড পুল করার পর ঘটতে পারে।

আপনাকে শুধু --force ফ্ল্যাগ ব্যবহার করা উচিত যখন আপনি লক্ষ্য করেন যে আপনি একটি পুশে একটি ভুল করেছেন যা আপনি ফিক্স করেছেন। অন্যথায়, আপনাকে এই কমান্ড ব্যবহার করা এড়াতে হবে। এটি নিশ্চিত করবে যে আপনি কোনো অনিচ্ছাকৃত পরিবর্তন একটি Git রিপোজিটরিতে না করেন।

--force ফ্ল্যাগের সিনট্যাক্স:

git push <remote name> <branch name> --force

এই কমান্ডটি আপনার কোড ফোর্স পুশ করবে। যেকোনো এরর যা আসতে পারে সেটি ইগনোর হবে।

Git Push to Origin Master উদাহরণ

চলুন একটি সাধারণ সিনেরিও দেখি যেখানে আপনি git push কমান্ড ব্যবহার করতে চান।

ধরা যাক আপনি ব 졸্ড আপনার লোকাল কোডে কিছু পরিবর্তন করেছেন যা আপনি একটি রিমোট রিপোজিটরিতে পুশ করতে চান। আপনি ইতিমধ্যে git commit ব্যবহার করে একটি কমিট তৈরি করেছেন যেটিতে আপনার পরিবর্তনগুলো সংরক্ষিত। আপনার কোড পুশ করতে, কিছু ধাপ ফলো করা উচিত।

প্রথম, আপনাকে আপনার master ব্রাঞ্চে নেভিগেট করতে হবে এবং নিশ্চিত করতে হবে সেটি আপ-টু-ডেট। লোকাল master ব্রাঞ্চ হলো যে ব্রাঞ্চে আমরা আমাদের পরিবর্তনগুলো করেছি। আপনি master ব্রাঞ্চে নেভিগেট করতে পারেন:

git checkout master git fetch origin master

git checkout কমান্ড আমাদের "master" ব্রাঞ্চে নেভিগেট করায়। git fetch আমাদের রিমোট রিপোজিটরির লেটেস্ট ভার্সন রিট্রিভ করতে দেয়।

আমরা মূল রিপোজিটরিতে আমাদের master ব্রাঞ্চে করা পরিবর্তনগুলোর সাথে একটি কমিট তৈরি করতে পারি:

git add README.md git commit -m "feat: Make changes to README" 

আমরা README.md ফাইলটি স্টেজিং এরিয়াতে যোগ করেছি। তারপর আমরা একটি কমিট তৈরি করেছি। আমাদের কমিট মেসেজ হলো "feat: Make changes to README"। এই কমিট বর্তমানে আমাদের লোকাল ব্রাঞ্চে সংরক্ষিত।

তারপর, আমরা git push চালাতে পারি আমাদের কোড পুশ করতে:

git push origin master

এই কমান্ডটি রান করার পর, আমাদের লোকাল রিপোজিটরিতে কোড আমাদের রিমোট রিপোজিটরিতে পুশ হবে। কারণ আমরা পুশ করার আগে আমাদের কোড আপ-টু-ডেট কিনা চেক করেছি, git push কমান্ড দিয়ে কোনো এরর ফেরত আসা উচিত নয়।

উপসংহার

git push কমান্ড ব্যবহার করা হয় একটি লোকাল Git রিপোজিটরি থেকে একটি রিমোট রিপোজিটরিতে চেঞ্জগুলো "পুশ" করতে। কোডবেসে কাজ করা সব লোক আপনার কন্ট্রিবিউশনগুলো দেখতে পাবেন একবার সেগুলো পুশ হলে।

এই টিউটোরিয়ালে কোড পুশ করার বেসিক এবং git push কমান্ড কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হয়েছে। এখন আপনি আপনার কোড একটি রিমোট Git রিপোজিটরিতে একটি Git মাস্টারের মত পুশ করতে শুরু করতে পারেন!

  1. GitHub: সফটওয়্যার ডেভেলপারদের জন্য ওয়েব-ভিত্তিক ভার্সন কন্ট্রোল ও সহযোগিতা প্ল্যাটফর্ম

  2. Git Reset: কমিট রিয়ার্ন করার টুল

  3. Git এবং GitHub-এ শুরু করার গাইড

  4. 'Fatal: Origin does not appear to be a Git Repository' এরর ফিক্স করার উপায়