User:Piggz/CalligraWorkflowInANutshell
In general, features should be developed in a separate branch and merged into master once ready and reviewed, this allows the master branch to be in an almost permanently releasable state. Commits to master should be for simple things/bug fixes only.
Create a new branch
git checkout -b new_branch_name
<do some work>
Commit the work
git commit -a (or whichever preferred way of checking in)
<repeat until ready for review>
Post the changes to reviewboard using whatever preferred method, although the following git alias is handy
post-review = !post-review --guess-summary --guess-description --username=<reviewboardusernamehere> --repository-url=git://anongit.kde.org/calligra --target-people=<regularlyusedpeoplehere> --target-group=calligra
When ready to go into master, checkout master
git checkout master
Pull master and rebase
git pull --rebase
Merge the branch in a single, squashed commit
git merge --squash new_branch_name
Commit the new feature to master
git commit -a (or whichever preferred commit method)
Push to the main repository
git push origin master