Learn about how to use the staging area, and play with your local history.
This includes amending your commits, merging, splitting, removing them.
You should master the interactive rebase (git rebase -i
).
These parts of Atlassian's git tutorial are a good start:
This link explains well some of git rebase -i
's usecases: git interactive rebase
Learn what a force push (git push --force
) is, when it is needed, and what are the dangers using it.
This link explain it well, and presents a very good alternative: force-with-lease
Note that you should never rewrite the history of a public branch (a branch used by other people).