【Git】コマンド: いい加減覚えが悪いのでまとめとく。
こんにちは、マリンです。
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/ブランチ名
fetch
でローカルのツリーを最新にtr
でマージするブランチを確認merge
で現在のブランチを最新にする
git pull
職場では使っていませんが、
前述のブランチを最新にする一連の流れをまとめたコマンドです。
手間は省けますが、やはり一つずつ確認してからのが安心な気がします。
git diff
差分を確認するコマンドです。
確認対象は様々に指定できますが、指定がない場合は
インデックス(add後commit前のもの)と作業ディレクトリとの差分を表示します。
それぞれの指定方法はこちらが分かりやすかったです。
まとめ
今回はこんな感じでしょうか。
いつも迷うものをあげたので、commit
とかpush
とかは出していません。
多分コマンド自体の意味より、
origin
とかmaster
とかがよくわかっていなかったから、
これをするとどこに何が反映される?という点でこんがらがっていたんだと思います。
まだ怪しい気がするので、もし間違いがありましたらぜひご指摘ください。
よろしくお願い致します。