2016/07/18 21:30:20

Git branch

[git]

git の branch は使い勝手が超絶良い

Git の branch

Git のブランチは作成・削除・切り替えが素早く行えて使い勝手が良い。
merge 作業も簡単で、これは使わないと損。

git branch -h で全体像が拝める。

$ git branch -h
usage: git branch [options] [-r | -a] [--merged | --no-merged]
   or: git branch [options] [-l] [-f] <branchname> [<start-point>]
   or: git branch [options] [-r] (-d | -D) <branchname>
   or: git branch [options] (-m | -M) [<oldbranch>] <newbranch>

Generic options
    -v, --verbose         be verbose
    -t, --track           set up tracking mode (see git-pull(1))
    --set-upstream        change upstream info
    --color[=<when>]      use colored output
    -r                    act on remote-tracking branches
    --contains <commit>   print only branches that contain the commit
    --abbrev[=<n>]        use <n> digits to display SHA-1s

Specific git-branch actions:
    -a                    list both remote-tracking and local branches
    -d                    delete fully merged branch
    -D                    delete branch (even if not merged)
    -m                    move/rename a branch and its reflog
    -M                    move/rename a branch, even if target exists
    -l                    create the branch's reflog
    -f, --force           force creation (when already exists)
    --no-merged <commit>  print only not merged branches
    --merged <commit>     print only merged branches

branch の一覧

全ブランチ

$ git branch -a

手元のブランチだけ

$ git branch

リモートのブランチだけ

$ git branch -r

ブランチの詳細

$ git branch -v

新しい branch の作成

$ git branch [BRANCH_NAME]

branch の切り替え

$ git checkout [BRANCH_NAME]

branch を作成してすぐ切り替え

$ git checkout -b [BRANCH_NAME]

branch の削除

$ git branch -d [BRANCH_NAME]

merge していない内容があっても、とにかくブランチを削除する。

$ git branch -D [BRANCH_NAME]

リモートブランチの削除は push で行う

$ git push origin :[BRANCH_NAME]

削除してよい branch の一覧

マージ済みのブランチを一覧する

$ git branch --merged

git stash

git checkout で branch を切り替えようとしたとき、コミットしていないと怒られて切り替えることができない。
そんなとき役に立つのが git stash
現在の作業内容をスタックに保存して、ワーキングコピーを一時的に HEAD な状態に戻せる。
他のブランチに移動して作業をして戻ってきたり、現在の作業をいったんとりやめて別のアプローチを試して、やっぱ今の状態に戻りたい、とかいったことが気楽にできる。

現在の作業内容を保存する

$ git stash

stash で保存している一覧

$ git stash list

stash で保存した状態に戻す

$ git stash pop <stash>

stash を削除する

$ git stash drop <stash>

stash の内容をすべて削除するなら clear

$ git stash clear

.bashrc に br alias

.bashrc に br エイリアス作っておくと便利。

alias br='git branch -a'

差分の取り込み

ブランチの差分を取り込むには merge コマンドを使用する。

$ git merge [BRANCH_NAME]

merge は、カレントのブランチに、対象の [BRANCH_NAME] の作業分がマージされる。

サイト内検索