Version control is at the heart of modern software development, and Git is the undisputed leader. While most developers are comfortable with basic Git commands like clone, add, commit, and push, mastering advanced Git and GitHub commands can dramatically improve your workflow.
In this guide, we’ll dive into some essential advanced Git and GitHub commands that every developer should know.
1. Clone a Specific Branch
Instead of cloning the entire repository:
git clone --branch branch_name --single-branch https://github.com/user/repo.git
Only the specified branch is downloaded, saving time and space.
2. Stash Changes
Save your local modifications without committing them:
git stash
3. Amend Last Commit
Made a small mistake in your last commit? Just amend it:
git commit --amend
This lets you modify the last commit message or add forgotten changes.
4. Squash Commits (Interactive Rebase)
To combine multiple commits into one (clean up your commit history):
git rebase -i HEAD~n
Replace n with the number of commits you want to review.
Choose squash (or s) for commits you want to merge.
5. Force Push Changes
If you have rebased or amended commits:
git push --force
** Caution:** Force pushing can overwrite history, so use it carefully, especially on shared branches!
6. Create and Track a New Branch
Create a branch and immediately switch to it:
git checkout -b new-branch-name
Push and set upstream:
git push -u origin new-branch-name
7. Fetch and Prune Deleted Remote Branches
Keep your local references clean:
git fetch -p
Removes references to remote branches that no longer exist.
8. View Detailed Commit History
For a cleaner log with graph-like visualization:
git log --oneline --graph --all --decorate
Great for visualizing branch merges and commit history.
9. Cherry-pick Specific Commits
Apply a single commit from another branch:
git cherry-pick commit_hash
Useful when you need only one feature or fix without merging the entire branch.
10. Revert a Commit (Without Losing History)
If you need to undo a commit without deleting history:
git revert commit_hash
It creates a new commit that undoes the changes.
Mastering these advanced Git commands can take your productivity to the next level and help maintain a cleaner, more professional project history. Whether you're working on solo projects or collaborating in teams, becoming a Git power user is a career-defining skill.