gbp-push

&dhsection;

gbp-push

Push to a remote &git; repository, aware of necessary packaging branch tracking

          &gbp-push;

          &man.common.options.synopsis;
          --ignore-branch
          --debian-branch=branch_name
          --upstream-branch=branch_name
          --debian-tag=tag-format
          --upstream-tag=tag-format
          --[no-]pristine-tar
          --dry-run
          repository

## DESCRIPTION

&gbp-push; pushes your local changes to a remote repository. It is best run after uploading a &debian; package to the archive to update you &debian-branch;, &upstream-branch;, &pristine-tar; branch and corresponding tags. It will in order

- Verify that it is being executed from the &debian-branch;.

- Determine the debian tag from `debian/changelog` and add it the list of things to push if the changelog does not indicate an unreleased package.

- Determine the upstream tag from `debian/changelog` and add it to the list of things to push if it's not a native package.

- Determine if the tags correspond to the branch tips of the corresponding upstream and debian branches. If so, these branches will be added to the list of things to push. If not the changes will only be pushed up to the commit that is referenced by the corresponding tag.

- Determine if the pristine-tar branch needs to be pushed and if so adds it to the list of things to push.

- Finally, if not in dry-run mode, pushes the above changes to the remote side.

If a `remote` is given on the command line the changes are pushed to the given remote repository. By default it will push to the current branches remote and fall back to origin.

## OPTIONS

&man.common.options.description;

`--ignore-branch`

- Don't fail if the &debian-branch; does not match the currently checked out branch and push the current branch instead.

`--debian-branch`=`branch_name`

- The branch in the Git repository the Debian package is being developed on. If set to the empty value the branch will not be pushed.

`--debian-tag=``TAG-FORMAT`

- Use this tag format when looking for tags corresponding to a &debian; version. Default is `debian/%(version)s`. If set to the empty value the tag will not be pushed but gbp will push the tip of the &debian-branch;.

`--upstream-branch`=`branch_name`

- The branch in the &git; repository the upstream sources are put onto. If set to the empty value the branch will not be pushed.

`--upstream-tag=``TAG-FORMAT`

- Use this tag format when looking for tags of upstream versions. Default is `upstream/%(version)s`. If set to the empty value the tag will not be pushed.

`--pristine-tar`

- Whether to update the pristine-tar branch too.

`--dry-run`

- Pass the `--dry-run` to &gitcmd; `push`. So don't push anything, only check if things are pushable.

&man.gbp.config-files;

## SEE ALSO

man.gbp.buildpackage, man.gbp.clone, man.gbp.pull, man.gbp.conf

## AUTHOR

&dhusername; &dhemail;