Every software developer should have a good understanding of git, at least the basic commands like pull, push, add, commit, checkout, reset, status, diff and branch. However, only a few people know some specific and more advanced commands like revert, stash, rebase, squash and cherry-pick. …