追記
こんなシェル芸しなくても
git push origin HEAD
でいけます。なんなら
git push -u origin HEAD
すれば次回からはgit pushで済みます。
コマンド
Bash/tcsh
git push origin `git branch | fgrep '* ' | tr -d '* '`
git pull origin `git branch | fgrep '* ' | tr -d '* '`
``内は何をやっているのか
まず、git branchでブランチの一覧を取り出します。出力の形式は次のようになります。
他のブランチ1
他のブランチ2
・
・
・
他のブランチk-1
* 現在のブランチ
他のブランチk+1
・
・
・
他のブランチn
現在のブランチのところにだけ「* 」がついています。そこでfgrepの出番です。これはgit branchの出力から「* 」がある行だけを残して次のtrに渡します。最後のtrは、余分な「* 」を削除する働きをします。``は内部のコマンドの出力を全体のコマンドの一部の文字列として挿入するものなので、それぞれ
Bash/tcsh
git push origin (現在のブランチ)
git pull origin (現在のブランチ)
に置き換わります。