git Push
を作成してOrigin
だけでなく、別のリモートリポジトリにもプッシュするにはどうすればよいですか?
git Push
はgit Push Origin
のエイリアスにすぎないため、git Push to Pushを一度に2つのリモートリポジトリにエイリアスできますか(1つのコマンドだけで)。
ここでは非gitスクリプトを探していませんが、gitのローカルリポジトリに対してこれを設定したいと思います。
プッシュ後のスクリプトで試したときに失敗しました。
Gitにフラグを設定するだけではそれができるとは思いませんが、手動ですべてを入力せずに複数のリモートリポジトリにプッシュできるようにする構成ファイルを変更できます(最初に入力するだけで、後ではない)
の中に .git/config
ファイルでは、定義済みのリモートに複数のURLを追加できます。
[remote "all"]
url=ssh://user@server/repos/g0.git
url=ssh://user@server/repos/g1.git
もし、あんたが git Push all
今、すべてのリモートURLにプッシュします。
異なるURLでgit config --add remote.xyz.url
を使用することにより、コマンドラインから直接リモートブランチ(たとえばall
)に複数のURLを追加できます。
git config --add remote.all.url ssh://user@server/repos/g0.git
git config --add remote.all.url ssh://user@server/repos/g1.git
あなたがsuper lazyで、URLを何度もコピー/ペーストすることに耐えない場合、これはあなたのためです:
function git-add-Push-all() {
while read -r name url method; do
git config --add remote.all.url "$url"
done < <(git remote -v | awk '!/^all/ && /Push/')
}
git-add-Push-all # from git (sub)directory
完全なbashyスクリプトが可能です(テスト$name
および$method
)が、awk
は甘く、すべての人に愛があります。
次に、すべてのリモートにプッシュすることができます
git Push all
設定済みのリモートからURLを取得することもできます:
for repo in g0 g1 ...
do
git config --add remote.all.url `git config remote.$repo.url`
done
ここで、g0、g1、...はリモートの名前です。