KOTET'S PERSONAL BLOG

#qiita サッと一時ブランチを作って作業して捨てる

Created: , Last modified:
#qiita #tech

これは1年以上前の記事です

ここに書かれている情報、見解は現在のものとは異なっている場合があります。

この記事はQiitaに投稿されたものの転載です。


なにかちょこっとだけ作業するたびにトピックブランチをつくって終わったら消すということをしている。

  1. git branch <branch-name> [<start-point>]
  2. git checkout <branch-name>
  3. 作業
  4. add & commit & push
  5. git checkout <some-branch>
  6. git branch -D <branch-name>

めんどくさくなってきたので専用コマンドを作った。こういうものを書くのは初めてなのでこちらの記事のものを書き換えて作った。

.bashrc

tmpbranch() {
  (
  d=$(mktemp -d "${TMPDIR:-/tmp}/${1:-$2}.XXXXXXXXXX") && git worktree add $d $1 -b $2 && pushd "$d" || exit 1
  "$SHELL"
  s=$?
  if [[ $s == 0 ]]; then
    rm -rf "$d"
    popd
    git worktree prune
    git branch -D $2
  else
    echo "Directory '$d' still exists." >&2
  fi
  exit $s
  )
}

実行するとブランチが作成され、linked working treeが/tmpにできて、そこに移動する。exitするとディレクトリとブランチとworking treeが削除される。これによって作業は以下のようになった。

  1. tmpbranch <branch-name> <start-point>
  2. 作業
  3. add & commit & push
  4. exit

いい感じである。もしかしてこんなもの書かなくても別の便利な方法があったりするんだろうか?