git status বনাম git log

git status — বর্তমান অবস্থা দেখায়। অর্থাৎ working directory আর staging area-তে এখন কী চলছে: কোন ফাইল modified হয়েছে, কোনগুলো staged আছে, কোনগুলো untracked, আর আপনি কোন branch-এ আছেন। এটা ভবিষ্যতের commit-এর প্রস্তুতি দেখায়।

git log — অতীতের ইতিহাস দেখায়। অর্থাৎ এখন পর্যন্ত যত commit হয়েছে তার তালিকা: কে করেছে, কখন করেছে, commit message কী ছিল, commit hash কী।

সহজভাবে বললে: git status হলো "এখন কী হচ্ছে", আর git log হলো "এতদিন কী হয়েছে"।

git log-এর সাথে যেসব flag বেশি ব্যবহার হয়

git log --oneline — প্রতিটা commit এক লাইনে দেখায় (সংক্ষিপ্ত hash + message)। দ্রুত ইতিহাস দেখার জন্য সবচেয়ে বেশি ব্যবহৃত।

git log --graph --oneline --all — branch আর merge-এর গঠন ASCII graph আকারে দেখায়। Branch structure বোঝার জন্য দারুণ।

git log -p — প্রতিটা commit-এর সাথে diff (কোড-এ ঠিক কী পরিবর্তন হয়েছে) দেখায়।

git log -n 5 (বা git log -5) — শুধু শেষ ৫টা commit দেখায়।

git log --stat — কোন ফাইলে কত লাইন যোগ/বাদ হয়েছে তার সারসংক্ষেপ দেখায়।

git log --author="Mahmudul" — নির্দিষ্ট author-এর commit filter করে।

git log --since="2 weeks ago" — নির্দিষ্ট সময়ের commit দেখায় (--until-ও আছে)।

git log -- path/to/file.java — শুধু একটা নির্দিষ্ট ফাইলের ইতিহাস দেখায়।

git log --grep="fix" — commit message-এ নির্দিষ্ট শব্দ খুঁজে filter করে।

দৈনন্দিন কাজে সবচেয়ে বেশি কাজে লাগে এই combination-টা:

git log --oneline --graph --decorate -15

এতে branch pointer, tag সহ শেষ ১৫টা commit-এর একটা পরিষ্কার ছবি পাওয়া যায়। চাইলে এটাকে alias বানিয়ে রাখতে পারেন:

git config --global alias.lg "log --oneline --graph --decorate"
Share