BLOG

gitメモ③

完全に個人用思い出しメモなのであしからずm(_ _)m 

ブランチの仕組み

・分岐することで、複数の機能を同時並行で開発するための仕組みがブランチ

・ブランチとはコミットを指すポインタ

・ブランチの作成や切り替え、マージが他のバージョン管理ツールより高速

ブランチを新規追加する

git branch ブランチ名
git branch feature

ブランチを作成するだけで、ブランチの切り替えまでは行わない。

※まだマスターのままだよということ

ブランチの一覧を表示する

今あるブランチの一覧を表示

git branch

全てのブランチを表示する(-aはallの略)

リモートリポジトリも表示するようになる

git branch -a

どのブランチがどのコミットを指しているか

git log --oneline --decorate

ブランチを切り替える

git checkout 既存ブランチ名

ブランチを新規作成して切り替える

git checkout -b 新規ブランチ名

-bオプションを付けると、ブランチの作成と切り替えを一度にしてくれるので楽になる(-bとはブランチの略)

変更をマージする

マージとは他の人の変更作業を取り込む作業のこと

git merge ブランチ名
git merge リモート名/ブランチ名
git merge origin/maseter

作業中のブランチにマージする

マージには3種類ある

▼Fast Foward:早送りになるマージ

ブランチが枝分かれしてなかったときはブランチのポインタを前にすすめるだけ

▼Auto Merge:基本的なマージ

枝分かれして開発していた場合、マージコミットという新しいコミットを作る

コンフリクトを解決する

複数人が同じファイルの同じ行に対して異なる編集を行ったときに、どの変更を優先したらいいか分からないことをコンフリクトという

▼コンフリクトしたファイル

<h1>Git tutorial</h1>
<p>git add</p>
<<<<<<< HEAD
<p>about git add</p>
=======
<p>git commit</p>
>>>>>>> feature

<<HEAD 〜 == : HEADの変更分

== 〜 >>feature : featureの変更分

▼解決したファイル

<h1>Git tutorial</h1>
<p>git add</p>
<p>about git add</p>
<p>git commit</p>

①ファイルの内容を書き換える

②「<<」「==」「>>」 の記述を削除する

コンフリクトが起きないようにするには

・複数人で同じファイルを変更しない

・pullやmergeする前に変更中の状態をなくしておく(commitやstashをしておく)

※git stashとは変更中のファイルを一時保管しておくコマンド

・pullするときはpullするブランチに移動してからpullする

ブランチを変更・削除する

▼変更する(-mはmoveの略)

git branch -m ブランチ名
git branch -m new_branch

自分が作業しているブランチの名前を変更する

▼削除する(-dはdeleteの略)

git branch -d ブランチ名
git branch -d feature
git branch -D ブランチ名
強制削除する

masterにマージされていない変更が残っている場合削除しない

ブランチを利用した開発の流れ

masterブランチをリリース用ブランチに、開発はトピックブランチを作成して進めるのが基本

リモートブランチとは

リモートのブランチの状態へのポインタ