🔧 Advanced Git = Power User
Basic Git is not enough. Advanced Git commands unlock powerful features for complex workflows.
📝 Advanced Commands
# Interactive Rebase
git rebase -i HEAD~5
# Squash commits, reorder, edit
# Cherry-pick
git cherry-pick abc123
git cherry-pick abc123 def456
# Bisect (Find bugs)
git bisect start
git bisect bad HEAD
git bisect good abc123
git bisect run npm test
# Reflog (Recover lost commits)
git reflog
git reset --hard HEAD@{2}
# Worktree (Multiple branches)
git worktree add ../feature-branch feature-branch
git worktree list
git worktree remove ../feature-branch
# Submodules
git submodule add https://github.com/example/lib
git submodule update --init --recursive
# Archive
git archive --format=zip HEAD > project.zip
# Stash with Branch
git stash branch new-feature
🎯 Aliases and Automation
# Git Aliases
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'
# Advanced Aliases
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
# Git Hook (pre-commit)
#!/bin/sh
# Run linter
npm run lint
if [ $? -ne 0 ]; then
echo 'Linting failed'
exit 1
fi
# Git Hook (pre-push)
#!/bin/sh
npm test
if [ $? -ne 0 ]; then
echo 'Tests failed'
exit 1
fi
💡 Advanced Git Tips
- Use interactive rebase for clean history
- Use bisect to find bugs
- Use reflog to recover lost commits
- Use worktrees for parallel branches
- Create useful aliases
Advanced Git commands turn you into a power user. They unlock Git’s full potential.
