Git চিট শিট
অনুসন্ধানযোগ্য, প্রিন্টযোগ্য Git রেফারেন্স — config, ব্রাঞ্চ, মার্জিং, রিবেসিং, রিমোট, স্ট্যাশিং, ট্যাগ এবং পরিবর্তন বাতিল করা। বিনামূল্যে।
সেটআপ ও কনফিগ
10git config --global user.name "Jane Doe"
কমিটের সাথে যুক্ত নাম সেট করুন
git config --global user.email "jane@example.com"
কমিটের সাথে যুক্ত ইমেল সেট করুন
git config --global init.defaultBranch main
নতুন রিপো "main" ব্রাঞ্চে শুরু করুন
git config --global core.editor "code --wait"
ডিফল্ট Git এডিটর হিসেবে VS Code ব্যবহার করুন
git config --global pull.rebase true
পুল করার সময় merge-এর বদলে rebase
git config --global alias.co checkout
শর্টকাট alias তৈরি করুন (git co)
git config --global --list
সব গ্লোবাল কনফিগ মান তালিকাভুক্ত করুন
git config user.email
বর্তমান রিপোর ইমেল প্রিন্ট করুন
git config --global color.ui auto
রঙিন কমান্ড-লাইন আউটপুট চালু করুন
git help <command>
কোনো কমান্ডের ম্যানুয়াল পেজ খুলুন
রিপো তৈরি ও ক্লোন
9git init
বর্তমান ফোল্ডারে নতুন রিপো শুরু করুন
git init my-project
নতুন ডিরেক্টরিতে নতুন রিপো তৈরি করুন
git clone https://example.com/repo.git
HTTPS-এ রিমোট রিপো ক্লোন করুন
git clone git@example.com:user/repo.git
SSH-এ রিমোট রিপো ক্লোন করুন
git clone <url> my-dir
নির্দিষ্ট ডিরেক্টরি নামে ক্লোন করুন
git clone --depth 1 <url>
শুধু সর্বশেষ কমিট নিয়ে shallow clone
git clone --branch dev <url>
ক্লোন করে নির্দিষ্ট ব্রাঞ্চ চেকআউট করুন
git clone --recurse-submodules <url>
ক্লোন করে সব submodule শুরু করুন
git remote add origin <url>
বিদ্যমান লোকাল রিপোতে remote যোগ করুন
স্টেজিং ও কমিট
11git add file.txt
পরবর্তী কমিটের জন্য একটি ফাইল stage করুন
git add .
বর্তমান ডিরেক্টরির সব পরিবর্তন stage করুন
git add -A
মুছে ফেলা সহ সব পরিবর্তন stage করুন
git add -p
ইন্টারঅ্যাক্টিভভাবে নির্বাচিত hunk stage করুন
git commit -m "Add login form"
মেসেজসহ staged পরিবর্তন কমিট করুন
git commit -am "Fix typo"
tracked ফাইল stage ও কমিট এক ধাপে
git commit --amend
সর্বশেষ কমিট সম্পাদনা করুন
git commit --amend --no-edit
staged পরিবর্তন শেষ কমিটে যোগ করুন
git rm file.txt
ফাইল মুছে ফেলা stage করুন
git mv old.txt new.txt
ফাইল রিনেম/মুভ করে stage করুন
git reset file.txt
ফাইল unstage করুন, পরিবর্তন রাখুন
ব্রাঞ্চ
10git branch
সব লোকাল ব্রাঞ্চ তালিকাভুক্ত করুন
git branch -a
লোকাল ও remote-tracking ব্রাঞ্চ তালিকা
git switch -c feature/login
নতুন ব্রাঞ্চ তৈরি করে তাতে switch করুন
git switch main
বিদ্যমান ব্রাঞ্চে switch করুন
git checkout -b hotfix
ব্রাঞ্চ তৈরি ও switch-এর ক্লাসিক উপায়
git branch -m old-name new-name
ব্রাঞ্চ রিনেম করুন
git branch -d feature/login
merge হওয়া লোকাল ব্রাঞ্চ মুছুন
git branch -D feature/login
unmerged লোকাল ব্রাঞ্চ force-delete করুন
git push origin --delete feature/login
remote-এ ব্রাঞ্চ মুছুন
git switch -
আগের ব্রাঞ্চে ফিরে যান
Merging ও rebasing
10git merge feature/login
বর্তমান ব্রাঞ্চে একটি ব্রাঞ্চ merge করুন
git merge --no-ff feature/login
merge করে সবসময় merge commit তৈরি করুন
git merge --squash feature/login
ব্রাঞ্চকে এক staged পরিবর্তনে যুক্ত করুন
git merge --abort
conflict-সহ merge বাতিল করুন
git rebase main
বর্তমান ব্রাঞ্চের কমিট main-এ replay করুন
git rebase -i HEAD~3
শেষ ৩টি কমিট ইন্টারঅ্যাক্টিভভাবে সম্পাদনা
git rebase --continue
conflict সমাধানের পর rebase চালিয়ে যান
git rebase --abort
চলমান rebase বাতিল করুন
git cherry-pick <hash>
বর্তমান ব্রাঞ্চে একটি কমিট apply করুন
git mergetool
merge conflict সমাধানে টুল চালু করুন
Remote ও সিঙ্কিং
11git remote -v
কনফিগার করা remote ও তাদের URL তালিকা
git remote add upstream <url>
upstream নামে দ্বিতীয় remote যোগ করুন
git remote set-url origin <url>
বিদ্যমান remote-এর URL পরিবর্তন করুন
git fetch
merge ছাড়াই remote পরিবর্তন ডাউনলোড করুন
git fetch --all --prune
সব remote fetch ও বাসি ব্রাঞ্চ মুছুন
git pull
remote পরিবর্তন fetch ও integrate করুন
git pull --rebase
pull করে লোকাল কমিট উপরে rebase করুন
git push
লোকাল কমিট remote-এ আপলোড করুন
git push -u origin main
push করে upstream tracking ব্রাঞ্চ সেট করুন
git push --force-with-lease
অন্যদের না হারিয়ে নিরাপদে force-push
git push origin --tags
সব লোকাল tag remote-এ push করুন
পরিদর্শন ও তুলনা
10git status
staged, unstaged ও untracked ফাইল দেখান
git status -s
সংক্ষিপ্ত short ফরম্যাটে status দেখান
git diff
index-এর তুলনায় unstaged পরিবর্তন দেখান
git diff --staged
পরবর্তী কমিটের জন্য staged পরিবর্তন দেখান
git diff main..feature
দুটি ব্রাঞ্চ তুলনা করুন
git diff HEAD~1 HEAD
শেষ কমিট ও তার parent তুলনা করুন
git show <hash>
একটি কমিটের বিবরণ ও diff দেখান
git show HEAD:file.txt
কমিটে থাকা অবস্থায় ফাইল দেখান
git log --stat
পরিবর্তিত-ফাইল সারাংশসহ কমিট দেখান
git shortlog -sn
author অনুযায়ী কমিট গণনা করুন
পরিবর্তন বাতিল
10git restore file.txt
ফাইলের unstaged পরিবর্তন বাতিল করুন
git restore --staged file.txt
ফাইল unstage করুন, পরিবর্তন রাখুন
git restore --source=HEAD~1 file.txt
আগের কমিট থেকে ফাইল restore করুন
git checkout -- file.txt
লোকাল পরিবর্তন বাতিলের ক্লাসিক উপায়
git reset --soft HEAD~1
শেষ কমিট undo, পরিবর্তন staged রাখুন
git reset --mixed HEAD~1
শেষ কমিট undo, পরিবর্তন unstaged রাখুন
git reset --hard HEAD~1
শেষ কমিট undo ও পরিবর্তন বাতিল করুন
git revert <hash>
কমিট বাতিলকারী নতুন কমিট তৈরি করুন
git clean -fd
untracked ফাইল ও ডিরেক্টরি মুছুন
git clean -nd
clean কী মুছবে তা প্রিভিউ করুন
Stashing
10git stash
uncommitted পরিবর্তন সংরক্ষণ করে tree পরিষ্কার করুন
git stash push -m "wip"
বর্ণনামূলক মেসেজসহ পরিবর্তন stash করুন
git stash -u
untracked ফাইল সহ stash করুন
git stash list
সব stash করা পরিবর্তন সেট তালিকা
git stash show -p
সর্বশেষ stash-এর diff দেখান
git stash apply
সর্বশেষ stash পুনঃপ্রয়োগ করে রাখুন
git stash pop
সর্বশেষ stash পুনঃপ্রয়োগ করে মুছুন
git stash apply stash@{2}
index অনুযায়ী নির্দিষ্ট stash পুনঃপ্রয়োগ
git stash drop stash@{0}
একটি stash এন্ট্রি মুছুন
git stash clear
সব stash এন্ট্রি মুছুন
Tag
9git tag
সব tag তালিকাভুক্ত করুন
git tag v1.0.0
HEAD-এ lightweight tag তৈরি করুন
git tag -a v1.0.0 -m "Release 1.0.0"
মেসেজসহ annotated tag তৈরি করুন
git tag -a v1.0.0 <hash>
নির্দিষ্ট পুরোনো কমিটে tag দিন
git show v1.0.0
tag-এর বিবরণ দেখান
git push origin v1.0.0
একটি tag remote-এ push করুন
git push origin --tags
সব লোকাল tag remote-এ push করুন
git tag -d v1.0.0
লোকালভাবে tag মুছুন
git push origin --delete v1.0.0
remote-এ tag মুছুন
লগ ও ইতিহাস
12git log
সম্পূর্ণ কমিট ইতিহাস দেখান
git log --oneline
প্রতি কমিট এক-লাইন সংক্ষিপ্ত লগ দেখান
git log --oneline --graph --all
ব্রাঞ্চ ASCII গ্রাফ হিসেবে দেখান
git log -p
diff সহ কমিট ইতিহাস দেখান
git log --author="Jane"
author অনুযায়ী ইতিহাস ফিল্টার করুন
git log --since="2 weeks ago"
তারিখ পরিসর অনুযায়ী ইতিহাস ফিল্টার
git log --pretty=format:"%h %an %s"
লগ আউটপুট ফরম্যাট কাস্টমাইজ করুন
git blame file.txt
প্রতি লাইন সর্বশেষ কে বদলেছে দেখান
git reflog
HEAD কোথায় ছিল তার ইতিহাস দেখান
git bisect start
খারাপ কমিটের জন্য binary search শুরু করুন
git bisect good <hash>
bisect-এ কমিটকে known-good চিহ্নিত করুন
git bisect bad
বর্তমান কমিটকে bad চিহ্নিত করুন
“:q”-এর সাথে কোনো এন্ট্রি মেলে না।
সাহায্য দরকার?
এই টুলে কোনো সমস্যা পেয়েছেন? আমাদের দলকে জানান।