A typical, simple workflow consists of the following steps:

  1. Initially import a Debian™ package via gbp import-dsc. This imports the Debian™ Package on the debian-branch and the upstream sources on the upstream-branch.

  2. Develop, test, commit changes. During this time, you can always build the package with gbp buildpackage. In case you have uncommitted changes in your source tree, you can use the --git-ignore-new option.

  3. Optionally you can create the Debian™ changelog entries using gbp dch and create snapshot releases for testing using its --snapshot option.

  4. Once satisfied, you can build the final package with gbp buildpackage --git-tag. This additionally creates a tag within Git™ so you can switch back to that version later at any time. The format of the tags can be specified; tags can be GPG™ signed.

  5. When a new upstream version is released and upstream isn't using Git™, you can import the new version via gbp import-orig onto the upstream-branch. gbp import-orig will by default try to merge the new upstream version onto the debian-branch (you can skip the merge with --no-merge). After resolving any potential conflicts, go back to the second step.

These steps will be explained in more details in the following sections.