Git Advanced
Commands
Revert Changes - Revert
git revert <hash>
git revert --no-commit <hash>
git revert HEAD~2..HEAD
git revert -m <1,2> <hash>
Revert Changes - Reset
git reset --soft HEAD~1
git reset --hard HEAD~1
git reset --hard HEAD
git reset --hard origin/main
Showing commits diff
git diff <hash>~ <hash>
git show <hash>
Keeping the git history linear
git rebase <branch>
Squashing commits
git reset --soft HEAD~3 && git commit
git rebase -i HEAD~3
Saving the working directory
git stash
git stash pop
git stash list
Cherry-picking changes
git cherry-pick <commitSha>
Bonus, cleaning untracked and ignored files
git clean -dxf