Web Marina

日々の業務や勉強などで得た知識をアウトプットしていきます。

【Git】コマンド: いい加減覚えが悪いのでまとめとく。

f:id:song-of-life1352607:20170220105406j:plain

こんにちは、マリンです。

7月から今の職場でお世話になり始め、はや5ヶ月経ちます。

・・・が、いつも使ってるGitコマンドを全然覚えなくていい加減上司にブチ切れられそうなので、

理解も兼ねてまとめておきます・・・orz




git fetch

ローカルの環境を最新の状態にします。

と言ってもこの時点では作業中のファイルが更新されるわけではありません。

更新されるのは、ローカルにあるorigin/masterです。

リモートにあるmasterを参照して、ローカルのorigin/masterを更新します。




originとmaster

二つは別物で、両方ともローカルにあるブランチです。

(masterはリモートにもあるブランチですが、リアルタイムで連携してるわけではないです)

origin/master

  • リモートの状況を追跡するためのブランチ

  • originという名前のリモートの、masterブランチを追跡していますよ。

  • git fetchすることでこのブランチが最新になる。(連携は手動で。)




master

  • ただの作業ブランチ(語弊がある??)

  • issue~create-userとか、そんな感じと一緒。

  • git fetchしただけでは変更されない。




originとmasterについてはこちらの記事がオススメです。

gitのふわっとした知識を調査してみたnekosoftware.wordpress.com


git checkout ブランチ名

対象のブランチに切り替えます。

もしそのブランチがローカルにない場合には、新規に作成して切り替えます。

そして新しいブランチで作業を始める際、

いつもこれとfetchを組み合わせて使っています。

$git fetch && git checkout ブランチ名




git tr --all

正確には

$git tree --all

です。

最新までのgitのツリー状況を見ることができます。


git merge origin/ブランチ名

先にgit fetchを出しましたが、あれだけでは作業ディレクトリは最新になりません。

mergeをすることで、初めて現ブランチを最新にできます。

現在いるブランチを指定したブランチの状態に上書きします。

(上書きという表現が正しいか分かりませんが、私は一番しっくりきました。)


ブランチを最新にする一連の流れ

$git fetch
$git tr --all
$git merge origin/ブランチ名
  1. fetchでローカルのツリーを最新に
  2. trでマージするブランチを確認
  3. mergeで現在のブランチを最新にする




git pull

職場では使っていませんが、

前述のブランチを最新にする一連の流れをまとめたコマンドです。

手間は省けますが、やはり一つずつ確認してからのが安心な気がします。


git diff

差分を確認するコマンドです。

確認対象は様々に指定できますが、指定がない場合は

インデックス(add後commit前のもの)と作業ディレクトリとの差分を表示します。

それぞれの指定方法はこちらが分かりやすかったです。

qiita.com




まとめ

今回はこんな感じでしょうか。

いつも迷うものをあげたので、commitとかpushとかは出していません。

多分コマンド自体の意味より、

originとかmasterとかがよくわかっていなかったから、

これをするとどこに何が反映される?という点でこんがらがっていたんだと思います。

まだ怪しい気がするので、もし間違いがありましたらぜひご指摘ください。

よろしくお願い致します。