はじめに
学習用のメモになります。
1.ブランチ
ブランチを新規作成
git branch <ブランチ名>
git branch feature
このコマンドはブランチを作成するだけでブランチの切り替えまでは行わないよ。
*HEAD:今いるブランチを示している。
ブランチを切り替える
git checkout <既存ブランチ名>
git checkout feature
# ブランチの新規作成して切り替える
git checkout -b <新しいブランチ名>
-bオプションをつけると、ブランチの作成と切り替えを一度にしてくれます。
ブランチを利用することで分岐して作業ができます。
ブランチの一覧を表示
git branch
# 全てのブランチを表示する
git branch -a
ブランチの変更・削除する
# 変更する
git branch -m <ブランチ名>
git branch -m new_branch
自分が今作業しているブランチの名前を変更するよ
# 削除する
git branch -d <ブランチ名>
git branch -d feature
## 強制削除する
git branch -D <ブランチ名>
masterにマージされていない変更が残っている場合削除しない。
ブランチを利用した開発の流れ
masterブランチをリリース用ブランチに、開発はトピックブランチを作成して進めるのが基本。
2.マージ
マージとは、他の人の変更内容を取り込む作業のこと
git merge <ブランチ名>
git merge <リモート名/ブランチ名>
git merge origin/master
作業中のブランチにマージします。
マージの種類
1.Fast Foward
早送りになるマージ
ブランチが枝分かれしてなかったときはブランチのポインタを前に進めるだけ
2.Auto Merge
基本的なマージ
枝分かれして開発していた場合、マージコミットという新しいコミットを作る。
これによって変更履歴を統合する。
3.コンフリクト
コンフリクトはどういった時に起こるのかいうと、同じファイルの同じ行に対して異なる編集を行った時に起こります。
コンフリクトの解決の仕方
# 具体例(コンフリクトしたファイル)
<h1>Gitチュートリアル</h1>
<<<<<<<HERD
<p>git addについて学ぼう</p>
=======
<p>git commitを知ろう</p>
>>>>>>>feature
<<HERD~==:HEADの変更分
==~>>feature:featureの変更分
# 解決したファイル
<h1>Gitチュートリアル</h1>
<p>git addについて学ぼう</p>
<p>git commitを知ろう</p>
①ファイルの内容を書き換える
②「<<」 「==」 「>>」の記述を削除する
③再度git add
→gitcommit
をする
コンフリクトを起こさない方法(防止策)
・複数人で同じファイルを変更しない
・pullやmergeする前に変更中の状態をなくしておく(commitやstashをしておく)
・pullするときは、pullするブランチに移動してからpullする