I have tried a number of Git GUI’s and the best by far has to the Source Tree
https://www.sourcetreeapp.com/
Why? It’s just so easy to use and displays what you need when you need it.
I have tried a number of Git GUI’s and the best by far has to the Source Tree
https://www.sourcetreeapp.com/
Why? It’s just so easy to use and displays what you need when you need it.
Source control packages always have been a bit of a pain when you first start using them. You may know the principles of source control. Each environment has its own way and definitions and its own processes. Once you are used to using a source control system and the steps you follow it is easy. I call this the Source Control shuffle.
It’s always good to have a workflow that allows for code review and this process below will provide a method to do this by using branches and merging back into the master.
master
is always production ready and suitable for deploymentrebase
during feature development, explicit ( --no-ff
) merge
when complete.New features that are added to the product for a future release.
N.B. bug fixes that should go into the next feature release, rather than a hotfix, should also use this process.
Pull down the latest changes from master
.
git checkout master
git fetch origin
git merge master
git checkout -b PRJ-123-feature-name
Keep your branch up to date with the latest changes on master
git fetch origin
git rebase origin
/master
When ready for feedback and/or code review, push to remote and create a pull request.
Push to remote:
git push -u origin PRJ-123-feature-name
master
:\master
needs to be merged into the branch to update it, you should not use rebase
, as this will cause problems with the pull request.rebase
(see Feature Process above) to prepare to merge
. Then push to remote again (see 5.a above).git branch -d PRJ-123-feature-name
Bug fixes that need to be applied to the currently released version (or to patch a previous version that is still supported) and require a new patch version release.
master
(see Feature Process 1. above).Check out the tag of the release you want to hotfix, branch from it and check out the new branch:
master
should not be brought into your hotfix branch.master
.This process starts when preparing to make a release after all code tasks for that release are merged into master
. Final work may still be necessary to complete the release.
master
either in git directly, or locally, having first pulled the latest changes from master. If you create the branch locally, the currently checked out branch will be used to branch from.release-1.1.0
master
as covered above.Once the release is ready, update the assembly version in the release branch to match Jira and commit, then deploy the build via the deployment machine – this will usually involve checking out the new release branch, running the grunt script to grab the correct web configs and log4net configs and then deploying from Visual Studio.
Create a tag on the release branch once you are happy that the release was successful