branchを指定せずpushできるコマンドを作ろう

2 min read読了の目安(約1200字

皆さんこんにちは。
git使ってますか?
おそらくエンジニアであればほとんどの方が使っていると思います。
そんなわけで今回はpush時にbranch名を指定しなくてすむようなコマンドを作っていきたいと思います。

環境

私の環境は以下のようになっています

  • OS
    • manjaro Linux
  • shell
    • fish

普段のpush

普段のpushは以下のような手順を踏んでいます。

$ git add ファイル名

$ git commit -m "コミットメッセージ"

$ git push -u origin ブランチ名

ではブランチを指定せずpushしてみましょう

fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstrem, use

  git push --set-upstream origin develop

:cry:
このようなエラーが吐かれてしまいます。
でも毎回branchを指定するのは大変(当社比)。
というわけでコマンドを作りましょう。

実装

以下の関数を~/.config/fish/config.fishに追記します。

function dopush
   set _nowBranch (git branch | grep '*' | awk '{print $2}')

   git push -u origin $_nowBranch
end

fishの場合はこのように関数を作ってあげるだけでdopushというコマンドが使えるようになります(便利)

bashの場合は以下のようになります。

function dopush() {
   _BRANCH=`git branch | grep '*' | awk '{print $2}'`

   git push -u origin $_BRANCH
}

これでdopushというコマンドでpushができるようになりました!やったね!!

最後に

私はshell scriptに疎いので「ここのコード、こうしたほうがいいよ!」、「これだめじゃね?」といったご指摘があればどんどんいただけるとありがたいです。
ここまで読んでくださってありがとうございました。

追記 2020-09-23

vim-jpのSlackで教えていただいたのですが、なんとgitconfigに

[push]
   default = current

を追記するだけでbranchを指定せずに済むようです!