Innehållsförteckning |
---|
Processen
...
övergripande
Git flow exempel hämtade från:
...
http://danielkummer.github.io/git-flow-cheatsheet/
Övergripande om processen
- Branchen master innehåller endast taggade produktions-releasermerger från releasbrancher.
- Branchen develop är där ny funktionalitet införs (integration branch)
- Varje feature utvecklas i en egen branch med develop som ursprunglig branch.
- När en feature är klar mergas den tillbaka in i develop.
- När branchen develop innehåller tillräckligt med features för en release, skapas en release-branch, och samtidigt startas utvecklingen för nästa release.
- I release-branch görs endast bug-fixar och dokumentationsuppdateringar.
- När den release-branch är redo att skeppas, taggas den bed hjälp av mvn ett maven och mergas den till master och taggas med version, efter det mergas ändringar också till develop.
- En support branch är en långlivad 'master-branch' för en viss version.
...
develop-branch: develop
release-branch: release/v<version><version>, tex release/v22.3.0
feature-branch: feature/<JIRA nr>, tex feature/SKLTP-123
...
support-branch: support/<version>, tex support/v.2.3.0
tag: <version>, tex v22.3.0
kommentar: ex SKLTP-123: Loggning av payload skall vara konfigurerbar av/på
...
https://github.com/nvie/gitflow/wiki/Command-Line-Arguments
Git flow motsvarande git command
https://gist.github.com/JamesMGreene/cdd0ac49f90c987e45ac
Release version hantering (pom filer och taggar)
Installera verktyget git flow
...
Kodblock |
---|
─$ git flow init -d |
...
Starta en feature branch
Kodblock |
---|
─$ git flow feature start SKLTP-123
Switched to a new branch 'feature/SKLTP-123'
Summary of actions:
- A new branch 'feature/SKLTP-123' was created, based on 'develop'
- You are now on branch 'feature/SKLTP-123'
Now, start committing on your feature. When done, use:
git flow feature finish SKLTP-123 |
Dela en feature branch
Obs: Om ni har gjort ändringar innan publish/push då ni måste pusha kod först till remote.
Kodblock |
---|
╰─$ git flow feature publish
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:skltp-aggregerandetjanster/riv.clinicalprocess.healthcond.basic.GetAggregatedObservation.git
* [new branch] feature/SKLTP-123 -> feature/SKLTP-123
Already on 'feature/SKLTP-123'
Your branch is up-to-date with 'origin/feature/SKLTP-123'.
Summary of actions:
- A new remote branch 'feature/SKLTP-123' was created
- The local branch 'feature/SKLTP-123' was configured to track the remote branch
- You are now on branch 'feature/SKLTP-123' |
Färdigställ en feature branch
...
...
...
Starta en release branch
Ersätta 1.0.0 med lämplig version nummer.
Kodblock |
---|
─$ git flow release start 1.0.0
Switched to a new branch 'release/1.0.0'
Summary of actions:
- A new branch 'release/v1.0.0' was created, based on 'develop'
- You are now on branch 'release/1.0.0'
Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:
git flow release finish '1.0.0' |
Stega upp version i källkoden (pom.xml) genom att köra update-versions och slutföra med git flow release publish så att andra utvecklare kan se den
Kodblock |
---|
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:update-versions -DdevelopmentVersion=x.x.x-RC1-SNAPSHOT
╰─$ git commit -a -m "Updated pom version to RC1-SNAPSHOT"
╰─$ git flow release publish 1.0.0 |
Release RC version:er
...
...
Verifiera att versionen stegats upp och taggats korrekt i git
...
...
Release utan RC version:er. Final release.
Obs: Stega upp version i källkoden (pom.xml) genom att ange nästa utvecklingscykel till x.x+1.x-SNAPSHOT (exempel: 1.1.0-SNAPSHOT)
Kodblock |
---|
╰─$ mvn versions:set -DnewVersion=1.0.0 -DgenerateBackupPoms=false
╰─$ mvn commit -a -m "Updated pom version to final version, no more RC's"
╰─$ git push --all
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare -DtagNameFormat=@{project.version}
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform -Darguments="-Dmaven.deploy.skip=true"
eller om man har behörighet att checka in på Nexus
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform |
...
Färdiställ release branch
Kodblock |
---|
╰─$ git flow release finish -n -p
.....
.....
Summary of actions:
- Release branch 'release/1.0.0' has been merged into 'master'
- Master branch 'master' has been back-merged into 'develop'
- Release branch 'release/1.0.0' has been locally deleted; it has been remotely deleted from 'origin'
- 'develop', 'master' and tags have been pushed to 'origin'
- You are now on branch 'develop' |
Göra en rättning på en publicerad release (hotfix branch)
...
Påbörja en hotfix branch
...
...
╰─$ git flow hotfix start v.2.3.1
Färdigställ en hotfix branch
Kodblock |
---|
╰─$ git flow hotfix finish v.2.3.1 |
Skapa en långlivad support branch för att kunna göra rättningar på äldre versioner (support branch)
...
Påbörja en långlivad support branch
Kodblock |
---|
╰─$ git flow support start v.2.3.0 |
Skapa en långlivad support branch för att kunna rättningar på äldre versioner (support branch)
Skapa en långlivad support branch
Kodblock |
---|
git checkout -b support/v2.3.0 master
|