入門Git 第5章

  • Gitの真髄は、あらゆるものがブランチのように扱われること

  • git branch -m master mymaster

    • -mは名前変更(move)の意味
  • ブランチはそのブランチでなされた最新のコミットだけを記録している

    • それぞれのコミットは直前のコミット(親コミット)へのリンクを持っているのでそれをたどることでブランチを作ってからどんな変更があったのかがわかる仕組み

いつブランチを作るべきかを見極める

新しいブランチをつくる

check out 「出発する、出て行く」

http://ejje.weblio.jp/content/check+out

  • git checkout -b <新ブランチ名> <分岐元ブランチ名>
    • -bを用いることでブランチ作成・チェックアウトを一発でできる

ブランチ間での変更のマージ

やり方は3つある

  • 直接マージ
    • あるブランチと別なブランチの履歴をマージして一緒にする
    • あるブランチの履歴全体を別のブランチへ取り込みたい場合に使う
  • 圧縮コミット
    • あるブランチの変更を「圧縮」(squash)してそれを別なブランチの先頭にコミットする
    • 新機能やバグフィックスなど機能をつくり、その変更を圧縮コミットとして一つのまとまった変更として取り込むときに使う
    • 履歴がひとつになってしまうので、軽率に行うことは避けるべき
    • git merge —squash branch_name
      • 指定ブランチの変更をまとめてステージした状態にする(mergeと言いながら、commitはされていない!)
  • チェリーピック
    • 別なブランチからコミットを一つとってきてそれを現在のブランチに適用する
    • ブランチ間でひとつのコミットだけマージしたいときに任意のコミットのみをマージできる
    • git cherry-pick -n commit-id
      • マージしないでステージした状態までで止まってくれる。これにより、cherry-pickした内容を修正してからコミットできる

ブランチ名変更

  • git branch -m old_name new_name
    • なお、同じ名前のブランチを-mしても作成できない
    • 強制的に上書き作成したいときは-Mを使用する