Here are some links that might be useful:
- A style guide for commit messages: https://dev.to/pavlosisaris/git-commits-an-effective-style-guide-2kkn
- For interactive tutorials, explore this: https://learngitbranching.js.org/
- About git stash: https://www.atlassian.com/git/tutorials/saving-changes/git-stash
- About git diff: https://www.atlassian.com/git/tutorials/saving-changes/git-diff
- About git reset and revert: https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
- About git cherry-pick: https://www.atlassian.com/git/tutorials/cherry-pick
- About git interactive rebasing: https://thoughtbot.com/blog/git-interactive-rebase-squash-amend-rewriting-history
- For when things really go wrong, you can check this, but be very careful: https://ohshitgit.com/
How to write a good commit message:
- https://cbea.ms/git-commit/
- https://initialcommit.com/blog/git-commit-messages-best-practices
- https://initialcommit.com/blog/git-commit-messages-best-practices
- https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/
- https://gist.github.com/robertpainsi/b632364184e70900af4ab688decf6f53#file-commit-message-guidelines-md
- https://www.freecodecamp.org/news/writing-good-commit-messages-a-practical-guide/
How to write a good pull request:
- https://github.blog/2015-01-21-how-to-write-the-perfect-pull-request/
- https://betterprogramming.pub/how-to-make-a-perfect-pull-request-3578fb4c112
- https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests
- https://tomekkolasa.com/how-to-make-great-pull-requests
In general, atlassian has very good tutorials, so just explore :)