Goalist Developers Blog

Gitをふんわり図解するシリーズ② 基本コマンド編

最近社内でGitの勉強会を開催したので、 図解部分をまとめました。
いつもなんとなくコマンド使ってるけど実際のとこあんまりイメージ湧かないぜ〜みたいな時に使えるTipsです。
基本用語解説編と合わせてドウゾ〜

git clone

f:id:y-iio:20181030193011g:plain
共有されてる保管場所をコピってきて、同じ形した自分のための保管場所を手元のPC内に作る

git init

f:id:y-iio:20181030194014g:plain
手元で製造工場を作ってから共有する場合もある

git log

f:id:y-iio:20181030193429p:plain
いつ誰がどんな意図でこの変更をしたのかを確認します

git add

f:id:y-iio:20181030193604p:plain
自分の変更部分を包みます

git commit

f:id:y-iio:20181030194142p:plain
包んだ変更をまとめてセーブ!

git push

f:id:y-iio:20181030194424p:plain
リモートリポジトリにブランチを作成
または、ブランチに変更内容を反映

git fetch

…の前に

f:id:y-iio:20181030195010p:plain ローカルリポジトリには2種類のブランチがあります

f:id:y-iio:20181030195043p:plain

・リモート追跡ブランチ
リモートリポジトリのブランチを参照するだけのブランチ
手元でいじれない
git branch -aでremotes/origin/xxxx とかなってるやつ

・ローカル作業ブランチ
手元での作業用
いつも使ってるやつ

f:id:y-iio:20181030195224g:plain
リモートリポジトリの上流ブランチを参照して、リモート追跡ブランチを更新すること
それがフェッチです

git merge

ブランチ上の変更を統合します

f:id:y-iio:20181030195514p:plain
作業ブランチ同士で、、とか

f:id:y-iio:20181030195438p:plain
リモート追跡ブランチから作業ブランチに、、とか
リモートリポジトリでの変更を作業ブランチにも反映させたい、そんなときはこの形です

git pull

f:id:y-iio:20181030200034p:plain
フェッチしたリモート追跡ブランチの変更をローカル作業ブランチにマージする、のをいっぺんにやるのがプルです。

pullで何も引数に指定しないと、上流ブランチが指定されてる作業ブランチ全てに対し
リモートリポジトリでの変更が反映されてしまうので、
けっこう予想外のマージが起こってあたふたしちゃったりします。

フェッチとマージができればプルを使う必要が全くないです、
プルして変にハマっちゃうくらいなら使わなくていいんじゃないのかな〜と思います

技術の図解もの

こんなのも書いてます

developers.goalist.co.jp

developers.goalist.co.jp

次回はコンフリクト解決についてまとめます