##Gitのブランチと使い方
そもそもブランチというのはどういう仕組みでできているのか
分かっていないと、自分の意図しない動きをしてしまうので
よく理解しておきたい。
ブランチというのは、同時並行で複数人で開発するための機能であって
ブランチを分岐をさせることによって、他の方影響を受けないで、
開発を進められるという利点がある。
ブランチとは、コミットファイルを指し示した、リンク機能みたいなもので
a タグのようなシンプルな機能でしかないことに注意するべき、
HEADはどこを指しているのかも重要な観点
###ブランチを新規作成コマンド
git branch <ブランチ名>
# git branch feature
# ブランチの作成をするだけでブランチの切り替えまでは行わない
####現在のブランチの一覧表示するためのコマンド
git branch
# 現在、存在するブランチ名だけを表示
git branch -a
# リモートブランチも含めて全て表示してくれる
それぞれのブランチがどのコミットを指しているのかを知りたい時に
使用してみるといいコマンド
--oneline
コマンドは単純に一行で表示してくれるコマンドで、
--decorate
コマンドが実際の情報を表示してくれるコマンド
git log --oneline --decorate
###ブランチを切り替える
git checkout <既存のブランチ名>
# git checkout feature
git checkout -b feature
# ブランチの新規作成と切り替えを同時に行ってくれる
##マージの使い方
マージというのは、他の人の変更内容を取り込む作業のことであって
gitの中で怖いとされる作業の一つ
しっかりと使いこなしていきたい
git merge <ブランチ名>
git merge <リモート名/ブランチ名>
# git merge origin/master
注意としては、統合(merge)したいブランチに移動してから、コマンドを実行すること
###マージには三種類ある
- Fast Foward ブランチが枝分かれしてない時に、ブランチのポインタを前に進めただけ
- Auto Merge 一般的にイメージされるマージで、ブランチが複数に枝分かれしている時に、統合する時に行われる
- Conflict 同じファイルの同じ行に対して、複数人が異なる変更を行なった時に起こる現象
コンフリクトは起きてしまっても焦らず、どんな変更があったのかを見て
適切に変更すれば処理できるので、とにかく焦らないこと。
注意点としては、以下
- 複数人で同じファイルを変更しない
- pullやmergeをする前に変更中の状態をなくしておく(commitやstashを実行しておく)
- pullする時は、pullするブランチに移動してからpullする
- とにかく慌てない
###ブランチ名の変更・削除
git branch -m <ブランチ名>
# git branch -m new_branch
git branch -d <ブランチ名>
# git branch -d feature
git branch -D <ブランチ名>
# 強制的に削除したい時に使えるコマンド
例えば、ブランチがmasterとfeatureの二つが存在した時に
上の小文字の"-d"での削除コマンドを押した時には、
もし、masterにfeatureの変更をmergeしてない時に
エラーメッセージを出してくれる、とても頼もしいコマンド
##おまけ ~> ブランチの運用ルール
masterブランチはあくまで、リリース用のブランチとして使い、
開発は、別のブランチを作成して進めるのが基本の型