Preparations before Starting

Understanding the Git basics

Not sure what a pull request is, or how to submit one? Take a look at GitHub's excellent documentation at https://help.github.com/articles/about-pull-requests/ and https://help.github.com/en/articles/creating-a-pull-request first.

To create a pull request, please refer to GIT basic, which gives a detailed description of the commands needed.

Configure Git to use real name in commits

Please configure git to use your real first and last name and your git noreply email adress for any commits you intend to submit as pull requests, e.g.
Author: First Last <your_account@users.noreply.github.com>

You can configure this globally with:

git config --global user.name "John Doe"
git config --global user.email john_does_github_account@users.noreply.github.com

These settings will be written to ~/.gitconfig on Unix and %APPDATA%\.gitconfig on Windows, see https://help.github.com/articles/set-up-git/

Alternatively, you can configure this locally for the taskana repository only by omitting the `--global` flag:

cd taskana
git config user.name "John Doe"
git config user.email john_does_github_account@users.noreply.github.com

Where to find my github noreply email

Go to Settings→Email in your account. Under "Keep my email addresses private" you can find the no reply email with your specific account. Also be sure to set this check box and the  check box "Block command line pushes that expose my mail" also to avoid check ins with email other than the noreply address.

Pull Request Pipeline

Each change to the master branch is done by a pull request (PR). A PR has to be reviewed and approved by one or many reviewers before merging into production code. A submitter is a person who creates the pull request. A reviewer is a person who will approve or decline the pull request at its current state. A merger is a person who finally integrates the PR into the master branch.

Our definition of a good pull request

Before creating a pull request

When creating a pull request

After approval

After the merge

Git Command Pipeline

The Git infrastructure is set up as follows:

If you start to work on a new ticket, you first go to your local repository in the master branch:

git checkout master

Then, bring this branch in sync with the upstream (i.e. taskana) master branch:

git fetch --all
git rebase upstream/master

Then, bring your private remote master branch (origin) in sync:

git push origin master

Now, create your new branch that contains your work:

git checkout -b <branchname> master

Now, do your development work, stage modified, deleted and new files and commit locally.

Now, push your local branch into your remote private repository.

git push origin <branchname>

This creates a new branch in your remote private Github repository. From there, create a pull request against the taskana repository on Github.