LoginSignup
4
8

More than 5 years have passed since last update.

gitのブランチ運用について備忘録

Last updated at Posted at 2015-12-01

個人的備忘録です。
githubでなくgitlabつかってるのでプルリクじゃなくてマージリクエストになってます。

前提知識など

ワークツリー、インデックス、HEADを使いこなす
http://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe

今いるbranchを確認する

アスタリスクが頭に付いてるやつが現在のブランチです

$ git branch

remoteブランチもみたい場合-aをつける

$ git branch -a

今いるbranchを最新にする

$ git branch
$ git pull

branchを移動する

$ git checkout <branch-name>

branchを作る

$ git checkout -b <branch-name>

pushの挙動を制御する

git config --global push.default current
git push

pushしたことないブランチでもオプションつけなくてよくなるので便利。
http://dqn.sakusakutto.jp/2012/10/git_push.html

branchのMergeRequestを作る

gitlabのブラウザの上のほうのメニューからどうぞ。
push直後なら全体のコミット履歴にマージリクエスト作るリンクが貼られてたりすることも。
作ったら確認してもらうために適宜お伝えする等しましょう。

AcceptMergeボタンが出ない場合にconfrictしそうかどうか前もって調べる

普通にマージしたいブランチに移動してmasterからマージするとコンフリクトしてたらそのファイルのメッセージが出るので
そのファイル開いて修正すればOKなようです。前もって知りたければ。
http://blog.inouetakuya.info/entry/20130602/1370173582

git checkout <マージしたいブランチ>
git merge master

特定のコミットだけマージしたい時

マージしたい対象のコミットidを調べてマージしたいブランチに移動して以下のコマンドを打つとマージされます。

git cherry-pick <commit-id>

http://rfs.jp/server/git/git-cherry-pick.html
コミットが1つだけのブランチを他のブランチにまとめたい時やmasterの更新を部分的に取り込みたい時などに。

mergeしてみたけどやっぱ元の状態に戻したいとき(ローカル上でリモートにpushする前の話)

マージしてみたけど、修正中のブランチで消したファイルがmasterで更新されてたときは戻してmaster側も消しとけばマージできそうとか色々ごっちゃりしてきて一度元に戻りたいときなどに。

git reset --hard HEAD

merge済みのローカルbranchを削除する

$ git checkout master
$ git branch --merged | grep -v '^*'
$ git branch --merged | grep -v '^*' | xargs git branch -d

mergeしてないけどやっぱ要らなかったpush済みbranchをリモートブランチも削除する

$ git checkout master
$ git branch -D <branch-name>
$ git push origin :<branch-name>

今さら聞けないgit pushコマンドによると、git push {ローカルのbranch}:{リモートのbranch} と指定しているので、ローカルbranchを省略するというのは、nullをリモートにpushしてリモートが消されるという意味になる模様。

ブランチ名について

目的に沿った分かりやすい名前がよさそうです。

接続先の確認方法

$ git remote -v
origin  git@gitlab.hoge.net:infra/test.git (fetch)
origin  git@gitlab.hoge.net:infra/test.git (push)

接続先remoteが複数あるとき

ちょっとややこしいですが。

git remote リポジトリを複数登録する
http://bayashi.net/diary/2012/0714

stashで一時保存

一時保存したいときに。
http://qiita.com/fukajun/items/41288806e4733cb9c342

tagをつける運用

一時ちょっとやってたけど最近あんまりしてない。
バージョンタグをつける。タグはポインタであって見るだけ。ブランチ切らないと編集できないです。
tagつけてもpushは明示的にしないといけない。

以上。

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8