Blog

gitの構築から実用までの流れ (2)

2016.06.21Cat:git プログラマー

前置き

前回に引き続きgitの導入やイメージ作りについて触れます。

git を使用する上で簡素なコマンドほど理解不足を後で実感して初心に戻させられます。
なのでここでイメージ作りが少しでも役立てばと。

書いてないこと

  • ブランチの概念と実用について

ブランチこそ他のバージョン管理ツールと異なる点だと思っていますが、、
他の初歩コマンドも重要なので先延ばし

git addしないと管理してくれない

前回 “git add” すればgitの管理下に置けないと書きました。書いたはず。

逆にgit addしないとgitは認識すらしてくれません

たとえば

プロジェクトの初期状態で色々変更したけど
git add
してないからcommitもpush出来ないし、他のチーム内メンバも見ることが出来ない

たとえば2

git管理化に一度git addしたファイルなのに
変更後にgit addしてないと
その変更内容がチーム内で共有出来ていない状態

などが考えられます。

もちろん、commitやpushして初めて他のメンバも認識出来る状態になるのですが
git addしなければ自分の(ローカル)開発環境内ですら、今までと同じただのファイル変更と同じです。

ある程度切りの良い作業の時点でgit addをするのが望ましい。
※ 裏を返せばデバッグ作業や履歴に残らなくて良いような作業中ならgit addの必要性が無い。

git rmで管理から外す

以下の様なファイルがある場合で使用します。

  • git管理する必要がなくなった
  • 誤ってgit addしてしまった

使い方

or

ファイルを物理削除したくない場合は後者を使う。

一旦git rmしたファイルはgit addし直さないと再びgit管理下に入りません

git checkoutで変更前に戻す

ここで新しいgit用語を先に紹介します

HEAD

HEADとは

git管理されているものの中で最新の状態

変更されたファイル群はどんどん蓄積されていきますが
その中でもっとも新しくgit管理上で変更されたものを指します(時間軸はあまり関係ない)

使い方

内容

上記はHEAD(つまりgit上で最新の状態)に指定ファイルの内容を置き換えますよ
といった意味合いになります。

ファイルだけでなくディレクトリも指定可能。
何も指定しなければ全てのファイルに対して適用されます。

それまでの作業途中でバージョン管理に追加(add, commit)していない
途中経過は全て消えてしまうの注意です。

逆に作業途中でよく解らない不具合などにぶつかった場合
「とりあえずHEADに戻そう」
と言ったケースに有効など使用用途は様々です。

git stashで変更状態を隠す

上記のcheckoutだと変更内容を戻すことは可能ですが、作業途中の内容を保持しておきたい場合もあります。

例えば・・・

HEADの状態を確認したいが、自分の未commit作業にあとで戻したい

そんなときに

を使用します。

概要は
git管理下にあるファイルのみ、今の自分の作業スペースの内容を隠す

例えば
hogefuga.txt
というgit管理下にあるファイルを修正途中だとします。
“一旦”その作業内容を元に戻したいとき・・・

とすれば作業内容がなくなり、

とすると、作業途中のものが復元します。

git diffで変更内容の差分を見る

こんなとき使う

  • あるコミット(git上のバージョン)間の変更内容の異なる部分だけ知りたい
  • ブランチ同士の差分を知りたい

使い方1

上記は作業途中などのファイルとHEADにある同じファイルの差分を表示してくれます。

のようにプラス行が
HEADから加わった変更
で、マイナス行が
HEADからなくなった内容
です。

上記だと、”var_dump(“hoge fuga”);” という行の行頭に”// “が加わったことを意味する。

ちなみに

これだと
「HEADのひとつ前との比較」
を意味します。キャレットを追加すれば、その分過去に遡ります。

使い方2

上記は
ローカルリポジトリのmasterブランチ

リモートリポジトリのmasterブランチ
の差分を表示します。

ブランチについてはまだ触れていないため、そんなもんなんだろうという認識で。
変更したファイル一覧だけを表示したい場合は

とオプションの「–stat」を入れてください。

git logで変更履歴を見る

以下のような感じの表示が標準で見られます

内容は「いつ」「だれが」「どのような変更をした」です。
“commit”という文字の右隣にあるランダムな文字列はgitから与えられます。

のようにすると一番上の変更内容が見られます。
“-w”は、「スペースや改行の違いは無視します」という意味のオプションです。

絞り込み検索もできる

例えば、、

とすると
commitした人の登録名が”Masanao”に部分一致するものだけが一覧表示されます。

枝分岐なども

ブランチについて説明していないので紹介のみ

Author Profile

ohba
ランニングと音楽とヲタトーク好きプログラマーです。 数学と英語を勉強中です。 DeepLearning始めました!
» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ