colodenn / PasswordManager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Git Strategy

The repository origin consists of the permanent main branches:

  • master (protected)

  • develop

The content of the master branch always represents the lastly released source code. In develop you

will always find the latest changes that are planned for the release. As the changes are released off of

develop, they are also merged with master and provided with a release tag at the same time.

Feature branches

The project is then worked on via a number of feature branches with limited lifetimes. A seperate

branch can be opened for each feature, allowing multiple developers to work simultaneously on different aspects of the project. The feature branches are always branched off from develop and are

also merged back to develop when the feature is completed. The feature branches are usually not

maintained in origin, but are created and managed exclusively in the local repo of the developer. This

can be achieved with the following command:

$ git checkout -b feature_XXXX develop 

The naming convention for feature branches is feature_XXXX, whereby the part after the underscore

should represent a short but appropriate name for the respective feature. Once the feature is developed, it must be merged back to develop and can then be pushed to origin/develop:

$ git checkout develop

Switched to branch 'develop'

$ git merge --no-ff feature_XXXX

Updating ea1b82a..05e9557

(Summary of changes)

$ git branch -d myfeature

Deleted branch myfeature (was 05e9557).

$ git push origin develop

Release branches

The release is handled via separate branches, which are used to make last-minute changes and update the version number. Like the feature branches, release branches are branched off from develop

exactly at the point in time at which the release-ready state is in develop. The following command

can be used analogous to the features:

$ git checkout -b release_X.X develop

The naming convention stipulates that the underscore is followed by the version number. When

completely new features are released, the number before the dot is incremented, when features are

added that extend or improve other existing features, the number after the dot is incremented. The

commit is always characterized by the following commit message:

$ git commit -a -m "Bumped version number to X.X"

At the end of the release, the branch is merged back to develop and the tag is created:

$ git checkout develop

Switched to branch 'develop'

$ git merge --no-ff release_X.X

Merge made by recursive.

(Summary of changes)

$ git tag X.X
$ git push origin develop

Lastly, the local release branch can be deleted again:

$ git branch -d release_X.X

Now a corresponding merge-request should be sent to the repo owner of origin to merge this state

of develop with master



Language:CSS 77.9%Language:HTML 16.6%Language:Python 4.8%Language:JavaScript 0.7%