Gavin Beatty email@example.com
git multipush: Push a branch to multiple remotes in one command. Particularly useful for people hosting on multiple git repo providers all at once. e.g., github.com, gitorious.org and repo.or.cz.
From the manpage:
NAME git-multipush - push a branch to multiple remotes in one command. SYNOPSIS git multipush [OPTIONS] [<remote>...] [-- GIT_OPTIONS] git multipush [OPTIONS] -s <remote> [...] git multipush [OPTIONS] --unset git multipush [OPTIONS] -g DESCRIPTION Particularly useful for people hosting on multiple git repo providers all at once. e.g., github.com, gitorious.org and repo.or.cz. OPTIONS -v, --verbose Print the git commands before executing them. -e, --error Fail immediately when any push fails. Otherwise, we fail after all pushes with the error code of the last failed push. -n, --dry-run Don’t run any of the git commands. Only print them, as in -v. -b, --branch=<branch> The branch to push. If none given, none are passed on to git push. If <branch> is given with no <remote>´s and no ´multipush.<branch>.remotes set, origin is used as the <remote>. -s, --set Set multipush.<branch>.remotes to a comma-separated list of the given <remotes>. They will be used as the list of remotes to push to when none are passed explicitely. --unset Unset multipush.<branch>.remotes. -g, --get Get multipush.<branch>.remotes and print each remote on its own line. --system Passed directly on to git config. --global Passed directly on to git config. --file=<file> Passed directly on to git config. -z, --null Only applies when -g, --get used. Print each remote with a null-terminator instead of a newline. Useful with xargs -0 etc. --version Print version info in the format git multipush version $version. <remote>... The list of remotes to push to. None passed to git push if none given. GIT_OPTIONS Options passed directly on to git push. EXIT STATUS 0 on success and non-zero on failure. AUTHOR Gavin Beatty <firstname.lastname@example.org> RESOURCES Website: https://github.com/gavinbeatty/git-multipush REPORTING BUGS Please report all bugs and wishes to <email@example.com> COPYING git-multipush Copyright (C) 2010 Gavin Beatty, <firstname.lastname@example.org> Free use of this software is granted under the terms of the GNU General Public License version 3, or at your option, any later version. (GPLv3+)
- sh: in POSIX
- sed: in POSIX
- git: it is very much not in POSIX.
As such, git-multipush should be portable across all platforms that Git supports.
git multipush Copyright 2010 Gavin Beatty email@example.com.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You can find the GNU General Public License at: http://www.gnu.org/licenses/
Configure and build:
Or configure and build with your own builddir:
Split configure and build into two steps:
make conf make
Default prefix is
sudo make install
Select your own prefix:
make install prefix=~/.local
DESTDIR supported so you can easily make packages. An example with
fakeroot make install DESTDIR=~/packages/git-multipush prefix=/usr