Branches: Difference between revisions
No edit summary |
(No difference)
|
Latest revision as of 03:13, 9 February 2024
Git branch model
- develop
- feature
- release
- master
Some basic rules for successful development using branches:
- master only gets updated from release
- develop is the main working branch
- develop is the source for new releases and features
- features can only go back into develop
resource: https://nvie.com/posts/a-successful-git-branching-model/
Create a new development branch from master
git branch develop git push --set-upstream origin develop
Develop code
The develop branch is used for continuous code development and for working out conflicts when merging features that were on a separate branch. Only when the code is functional enough can it be considered as a release candidate (see Releases below).
Set up develop environment
When developing code for a website, it may be wise to clone the project into a new folder so as not to mess with the live/production 'master' environment
git clone git@gitserver:myproject myproj_dev cd myproj_dev git checkout develop
If the development branch and work environment has already been created, then simply checkout the code:
cd myproject_dev git checkout develop
It may be useful to have a text file BUGS to let the developers know what work is still outstanding.
A text file CHANGES might be useful for the end-user to quickly see which new features or bug fixes have been incorporated.
Commit code
After you have developed your code and completed some logical component it is wise to commit the changes to the repository to make it easier for future code revision and debugging.
git add . git commit -m <commit message>
Upload commit to server
When a remote repository is available it is good practice to also upload the latest commit so everyone else can get access to the most recent changes in code.
git push
Releases
When the code in the develop branch is functional and without major bugs it can be considered as a release candidate. Code in the release branch can still contain bugs, but it's intended to fix only the current bugs and not introduce new features. Once the release has been thoroughly tested and all known bugs are squashed it can be brought over to the main branch (see Stable branch below).
Create Release branch
If not done so already, create a new Release branch from develop.
git branch release git push --set-upstream origin release
If the release branch has already been created, then simply checkout the release branch
git checkout release
Develop your code and commit as per normal.
It may be useful to create a text file RELEASE_VERSION to let the developers know what this release is for.
Stable
When finishing touches on the release branch have completed it's time to merge the code of the release branch into the master branch. The master branch is where only stable code releases should live. This keeps the branch clean from development work and commit comments.
git checkout master git pull origin master git merge release git push origin master
If the 'release' branch is not yet known to the master branch, you can bring the local git up to date with what's on the server with the fetch command:
git fetch
Do not merge from release again until the version in release is ready to be called stable.
Next, go to the development environment and open the release branch and rev up the RELEASE_VERSION to what the next stable version number should be.