gbp-push(1)
πΈ gbp-push(1) β the git-buildpackage manual, bestie edition πΈ
okay so you're in the git-buildpackage manual, specifically the page for gbp-push. welcome, sit down, hydrate. π
β¨ NAME β¨
gbp-push β push your stuff up to a remote Git repo, but likeβ¦ smart. It actually knows about your packaging branch tracking, so you don't have to sit there guessing which branches and tags need to go up. it's giving competence, honestly. π
π SYNOPSIS π
gbp push [--version] [--help] [--verbose] [--color=[auto|on|off]]
[--color-scheme= COLOR_SCHEME] [--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 π¦
So gbp push pushes your local changes to a remote repository. The moment for this is right after you've uploaded a Debian package to the archive β that's when you wanna update your debian-branch, your upstream-branch, your pristine-tar branch, and alllll the corresponding tags. one little command, whole repo caught up. iconic behaviour tbh. β¨
Here's the order it does stuff in, no cap:
- First it verifies that you're actually running it from the
debian-branch. vibe check on your working directory, basically. π«Ά - Then it figures out the debian tag from
debian/changelog, and adds it to the list of things to push β if the changelog isn't showing an unreleased package. - Then it figures out the upstream tag from
debian/changelogand adds it to the push list, as long as it's not a native package. - Then it checks whether those tags line up with the branch tips of the corresponding upstream and debian branches. If they do? Those branches get added to the list of things to push. If they don't? Then the changes only get pushed up to the commit that the corresponding tag points at. yes, the commit. exactly. π₯
- Then it checks if the
pristine-tarbranch needs pushing, and if it does, adds it to the list too. - And finally β only if you're not in dry-run mode β it pushes all of the above to the remote side.
If you hand it a remote on the command line, everything goes to that remote repository. If you don't, it pushes to the current branch's remote and falls back to origin. π
π OPTIONS π
--versionβ Prints the version of the program, i.e. the version of the whole git-buildpackage suite. cute little receipt of what you're running. π§Ύ-v,--verboseβ Verbose execution. it will tell you everything, and honestly?? we love a chatty program. π£οΈ-h,--helpβ Print help and exit. your emergency exit, bestie. πͺ--color=[auto|on|off]β Whether to use colored output. yes this is a personality setting. π--color-scheme=COLOR_SCHEMEβ The colors to use in output (when color is enabled, obviously). The format forCOLOR_SCHEMEis'<debug>:<info>:<warning>:<error>'. Numerical values and color names are both accepted, and empty fields just mean "use the default color". For example,--git-color-scheme='cyan:34::'would show debug messages in cyan, info messages in blue, and other messages in the default color (i.e. warning and error messages in red). a whole aesthetic overhaul, fr fr. π¨--ignore-branchβ Don't fail if thedebian-branchdoesn't match the branch you've currently got checked out β just push the current branch instead. no drama, just vibes. π--debian-branch=branch_nameβ The branch in the Git repository where the Debian package is being developed. If you set this to the empty value, the branch won't be pushed at all. okay so empty means β¨nothingβ¨, not "guess". noted. π--debian-tag=TAG-FORMATβ Use this tag format when looking for tags that correspond to a Debian version. Default isdebian/%(version)s. If you set it to the empty value, the tag won't be pushed β butgbpwill still push the tip of thedebian-branch. different behaviour, don't get it twisted. π--upstream-branch=branch_nameβ The branch in the Git repository where the upstream sources are put. If you set it to the empty value, the branch won't be pushed. π€--upstream-tag=TAG-FORMATβ Use this tag format when looking for tags of upstream versions. Default isupstream/%(version)s. If you set it to the empty value, the tag won't be pushed. that's it, that's the rule. π·οΈ--pristine-tarβ Whether to update thepristine-tarbranch too. go on, update it, it's been sitting there. π§--dry-runβ Passes--dry-runtogit push. So it doesn't push anything β it only checks whether things are pushable. a little dress rehearsal, a little mock trial, no consequences. π
β CONFIGURATION FILES β
Several gbp.conf files get parsed to set defaults for all the command-line arguments up above. wanna know the deets? go read the gbp.conf(5) manpage. it's all in there, bestie. π
π SEE ALSO π
gbp-buildpackage(1), gbp-clone(1), gbp-pull(1), gbp.conf(5)
likeβ¦ the whole friend group. go say hi. π«Ά
π AUTHOR π
Guido GΓΌnther <agx@sigxcpu.org> β the legend, the moment, the author. π
no cap, you now know everything this page knows. go push something. responsibly. π
this page came from the git-buildpackage Manual, dated 26 May 2026 β that's the version and the date, and that's the sign-off. mwah. π
π¦ where this page comes from
- ubuntu stonking: git-buildpackage 0.9.43 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms