# Daily Git Workflow A formula for change management without unnecessary merge commits. ## Start of day ```shell git checkout master # Ensure you are on master git fetch # Sync your local index with the latest remote changes git pull --rebase --autostash # Pull down the latest remote changes down to the local branch git checkout CX-XXXX-feature # Checkout your feature branch git pull --rebase --autostash # Pull down the latest remote changes down to the local branch git rebase origin/master # Put your feature branch changes on top of the latest master changes git push --force-with-lease # Forcefully, but safely, update remote with your locally rebased branch ``` ## Midday Make changes. Rinse. Repeat. Go ahead, 🚀 [use emojis in your commit messages][emoji-commits]. ```shell git add . git commit -m "CX-XXXX | ✨ Add new functionality" ``` ## End of day Push local changes to remote. ```shell git push ``` _NOTE: In general, **you should avoid force push** (`git push --force`). It is almost always better to have an extra commit than rewrite history._ [emoji-commits]:https://dev.to/n8io/cave-drawings-emojis-and-commit-messages-39ig