# Git commands & workflows

## Git commands and workflows

* [Rebase](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) - Instead of creating a merge commit to merge a feature from a different branch, we "rebase and merge" the branch to keep a clean commit history. Please read more about how to use it [here](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase).
* [Cherry pick](https://www.atlassian.com/git/tutorials/cherry-pick)
* [`commit --amend`](https://www.atlassian.com/git/tutorials/rewriting-history) - To change the last commit
* `push -f`

## Git GUI aid

* [Android Studio/IntelliJ git UI](https://www.jetbrains.com/help/idea/investigate-changes.html)
* [Gitkraken Git Client](https://gitkraken.com/git-client)
* [SourceTree](https://www.sourcetreeapp.com/)
* [Github Desktop](https://desktop.github.com/)
