Ape's merge workflow - Use if planning to make anything more than just one small commit 1. Get the latest version to base the changes on git checkout git pull --ff-only 2. Start a new feature branch for the changes git checkout -b 3. Make some changes to working directory 4. Review the modifications git status git diff 5. Add one logical set of changes to the index git add -p 6. Review the index git status git diff --staged 7. Stash any other modifications git stash -u --keep-index 8. Verify that the application compiles, works, and passes tests 9. Commit the changes git commit 10. Push the commit git push 11. Fetch any remaining modifications from the stash git stash pop 12. Repeat steps 3..11 for any other sets of changes until everything is committed 13. Get the latest version to base the feature branch merge git checkout git pull --ff-only 14. Merge the feature branch git merge --no-ff 15. Resolve possible conflicts and commit if necessary 16. Verify that the application compiles, works, and passes tests 17. Push the merge commit git push 18. Delete the feature branch git branch -d git push origin : Ape's rebase workflow - Useful for single, small commits that aren't related to any larger features 1. Get the latest version to base the changes on git checkout git pull --ff-only 2. Make some changes to working directory 3. Review the modifications git status git diff 4. Add the modifications to the index git add -p 5. Review the index git status git diff --staged 6. Stash any other modifications git stash -u --keep-index 7. Verify that the application compiles, works, and passes tests 8. Commit the changes git commit 9. Rebase the commit on the latest version git pull --rebase 10. Resolve possible conflicts and commit if necessary 11. Verify that the application compiles, works, and passes tests 12. Push the rebased commit git push 13. Fetch any remaining modifications from the stash and repeat from the 2nd step if needed git stash pop