মূলঃ How to Undo a Git Add

কমিট করার আগে একটি git add - কে undo করতে চাইলে, git reset <file> অথবা git reset ব্যবহার করে সব চেঞ্জগুলোকে unstage করে ফেলুন।

গিট-এর আগের ভার্সনগুলোতে এই কমান্ডদুটো একাধারে git reset HEAD <file> এবং git reset HEAD ছিলো। কমান্ডগুলো গিট ১.৮.২ এ বদলেছে

নিম্নোক্ত আর্টিকেলগুলোতে আপনি বহুল ব্যবহৃত ‌গিট অ্যাকশনগুলো নিয়ে পড়তে পারবেনঃ

গিট-এর পেছনের গল্পের একাংশ এখানে দেওয়া হলো

একটি গিট প্রোজেক্ট এর তিনটি বিভাগকে বুঝুন

একটি গিট প্রজেক্ট এর নিচের তিনটি মূল বিভাগ থাকবে:

১. গিট ডিরেক্টরি (Git directory)
২. ওয়ার্কিং ডিরেক্টরি (Working directory or working tree)
৩. স্টেজিং এরিয়া (Staging area)

গিট ডিরেক্টরি ( YOUR-PROJECT-PATH/.git/ এ অবস্থিত) হচ্ছে যেখানে গিট প্রোজেক্টটিকে যথাযথভাবে ট্র্যাক করার জন্য সবকিছু সংরক্ষণ করে। এই ডিরেক্টরিতে মেটাডেটা এবং একটি অবজেক্ট ডেটাবেজ যেটায় প্রোজেক্ট ফাইলের কম্প্রেসড সংস্করণ থাকে।

ওয়ার্কিং ডিরেক্টরিতে ইউজার তার প্রোজেক্টে লোকাল চেঞ্জগুলো করে। ওয়ার্কিং ডিরেক্টরি গিট ডিরেক্টরি-র অবজেক্ট ডেটাবেজ ‌থেকে প্রোজেক্ট ফাইলগুলো আনে এবং ইউজারের লোকাল মেশিন এ সেগুলো রাখে।

স্টেজিং এরিয়া হল একটি ফাইল (এটিকে “index”, “stage”, বা “cache”-ও বলে) যেটি আপনার পরবর্তী কমিট এ কী কী পরিবর্তন হবে তার তথ্য সংরক্ষণ করে। আপনি যখন গিট-কে স্টেজড চেঞ্জগুলো সেভ করতে বলেন তখন একটি কমিট হয়। গিট আপনার ফাইলগুলোর একটি স্ন্যাপশট নেয়, এবং গিট ডিরেক্টরি-তে স্থায়ীভাবে সংরক্ষণ করে রাখে।

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

গিট ইনস্টল করুন

গিট এনভায়রনমেন্ট কনফিগার করুন

আপনি যাতে আপনার গিট এনভায়রনমেন্ট কাস্টমাইজ করতে পারেন সেজন্য গিট এর একটি git config টুল আছে। আপনি কিছু নির্দিষ্ট ভেরিয়েবল সেট করে আপনার গিট দেখতে কেমন হবে বা কীভাবে কাজ করবে সেটি পরিবর্তন করতে পারেন। আপনার মেশিন এর কমান্ড লাইন ইন্টারফেস (Mac এ Terminal, Windows এ Command Prompt বা Powershell) থেকে এ কমান্ডগুলো চালাতে হবে।

কনফিগার করা এ ভেরিয়েবলগুলো তিনটি ধাপে সংরক্ষিত থাকেঃ

১. সিস্টেম (System): /etc/gitconfig এ অবস্থিত, এটি কম্পিউটারের প্রত্যেক ব্যবহারকারীর জন্য ডিফল্ট সেটিংস প্রয়োগ করে। এই ফাইল এ কোন পরিবর্তন করতে চাইলে git config কমান্ড এর সাথে --system অপশনটি ব্যবহার করুন।

২. ইউজার (User): ~/.gitconfig বা ~/.config/git/config এ অবস্থিত, এটি শুধুমাত্র একজন ব্যবহারকারীর সেটিংস এর জন্য প্রযোজ্য। এই ফাইল এ কোন পরিবর্তন আনতে চাইলে, git config কমান্ড এর সাথে --global ব্যবহার করুন।

৩. প্রোজেক্ট (Project): YOUR-PROJECT-PATH/.git/config এ অবস্থিত, এটি শুধুমাত্র প্রোজেক্টটির সেটিংস এর জন্য প্রযোজ্য। এই ফাইল এ কোন পরিবর্তন আনতে চাইলে git config কমান্ডটি ব্যবহার করুন।

যদি কোন কনফ্লিক্টিং সেটিং থাকে, তাহলে ইউজার লেভেল এর চেয়ে প্রোজেক্ট এর সেটিংস প্রাধান্য পাবে, আর সিস্টেম লেভেল এর চেয়ে ইউজার এর সেটিংস প্রাধান্য পাবে।

Windows ব্যবহারকারীদের জন্য দ্রষ্টব্য: গিট আপনার $HOME ডিরেক্টরি ( C:\Users\$USER ) এ ইউজার লেভেল কনফিগারেশন ফাইলটি ( .gitconfig ) খোঁজে। গিট /etc/gitconfig ফাইলটিও খোঁজে, তবে এটি MSys রুট এর সাথে রিলেটিভ। আপনি ইনস্টলার ব্যবহার করে আপনার Windows সিস্টেমে যেখানে গিট ইনস্টল করেছেন সেটিই MSys রুট। আপনি যদি Windows এর জন্য গিট এর ২.x বা এরপরের কোন ভার্সন ব্যবহার করেন, তাহলে Windows XP তে C:\Documents and Settings\All Users\Application Data\Git\config এবং Windows Vista ও এরপরের উইন্ডোজ সংস্করণগুলোতে C:\ProgramData\git\config এ একটি সিস্টেম লেভেল কনফিগ ফাইল থাকবে। এই কনফিগারেশন ফাইলটি শুধুমাত্র অ্যাডমিন হিসেবে git config -f FILE এর মাধ্যমে পরিবর্তন করা যাবে।

আপনার নাম এবং ইমেইল যুক্ত করুন

কমিট করার সময়, গিট, ইউজারের নাম এবং ইমেইল‌ও তথ্য হিসেবে সংরক্ষণ করে। আপনি নিম্নোক্ত কমান্ডগুলোর সাহায্যে আপনার ইউজার লেভেল কনফিগারেশন ফাইল এ নাম এবং ইমেইল যুক্ত করতে পারেনঃ

git config --global user.name "My Name"
git config --global user.email "myemail@example.com"

আপনার টেক্সট এডিটর পরিবর্তন করুন

গিট স্বয়ংক্রিয়ভাবে আপনার ডিফল্ট টেক্সট এডিটরকেই ব্যবহার করবে, কিন্তু আপনি চাইলে এটি পরিবর্তন করতে পারেন। এখানে Atom এডিটর ব্যবহার করার একটি উদাহরণ দেওয়া হলো ( --wait অপশনটি টেক্সট এডিটর এর জন্য শেল (shell)-কে অপেক্ষা করতে বলে, যাতে গিট সামনে আগানোর আগে আপনি টেক্সট এডিটরে আপনার কাজ শেষ করে নিতে পারেন)ঃ

git config --global core.editor "atom --wait"

গিট আউটপুট এর সাথে রং যুক্ত করুন

আপনি এই কমান্ডটি দিয়ে আপনার শেলকে গিট আউটপুট এর সাথে রং যুক্ত করার নির্দেশ দিতে পারেনঃ

git config --global color.ui true

আপনার সকল কনফিগারেশন সেটিংস দেখতে চাইলে git config --list কমান্ডটি ব্যবহার করুন।

একটি প্রোজেক্ট এ গিট ইনিশিয়ালাইজ করুন


গিট আপনার কম্পিউটারে ইন্সটল এবং কনফিগার করার পড়ে, কোন প্রোজেক্টে এটি ব্যবহার করার আগে, প্রজেক্টটিতে আপনাকে গিট ইনিশিয়ালাইজ করে নিতে হবে। কমান্ড লাইন এ cd কমান্ডটি ব্যবহার করে আপনার প্রোজেক্ট এর রুট ফোল্ডার এ যান। এরপর git init কমান্ডটি চালান। এটি আপনার প্রোজেক্ট ট্র্যাক করার জন্য গিট এর যতো ফাইল এবং অবজেক্ট প্রয়োজন সব সহ একটি গিট ডিরেক্টরি তৈরি করে দিবে।

গিট ডিরেক্টরিটি প্রোজেক্ট রুট ফোল্ডার এ ইনস্টল করা খুবই গুরুত্বপূর্ণ। গিট সাব-ফোল্ডারের ফাইলকে ট্র্যাক করতে পারে, কিন্তু গিট ডিরেক্টরির সাথে সংযুক্ত প্যারেন্ট ফোল্ডার এর কোন ফাইলকে ট্র্যাক করতে পারে না।

গিট থেকে সাহায্য নিন

যদি আপনি গিট এ একটি কমান্ড কীভাবে কাজ করে তা ভুলে গিয়ে থাকেন, আপনি কমান্ড লাইন থেকে একাধিক উপায়ে গিট এর সাহায্য পেতে পারেন:

git help COMMAND
git COMMAND --help
man git-COMMAND

এটি আপনার শেল উইন্ডোতে কমান্ডটির ম্যানুয়াল পেজটি দেখায়। ঘুরেফিরে দেখার জন্য হয় অ্যারো কী-র উপর এবং নিচ বাটন ব্যবহার করুন, অথবা নিম্নোক্ত কীবোর্ড শর্টকাটগুলো ব্যবহার করুন:

  • সামনের পৃষ্ঠায় যেতে f বা স্পেসবার

  • পেছনের পৃষ্ঠায় যেতে b

  • বের হয়ে যেতে q