waste of time

主にPHP

Gitの用語メモ

普段の業務ではSVNでソース管理しているのですが、最近個人的な開発(と呼べるほどのことはしていませんが)でBitbucket/SourceTreeを使って今更ながらGitを触り始めました。
SVNを使っていたと言っても基本的にはチェックアウト・更新・コミットをするくらいで、掘り下げた使い方はあまりしたことがありません。
そんなこんなでGitを使い始めたところ、新しい用語や概念が出てきて混乱したので、使う上で最低限の用語をメモしておきました。
うまくまとまってないし用語解釈がおかしいところがあると思う…

概念的な用語

リモートリポジトリ

みんなが使う共有リポジトリ

ローカルリポジトリ

自分専用のリポジトリ

インデックス

変更したファイルをローカルリポジトリにコミットするために、まずはインデックスに追加する必要がある。

実作業で使う用語

クローン

既存のリモートリポジトリからローカルにプロジェクトをコピーしてくる。(作業ディレクトリの作成)

コミット

インデックスに追加された変更ファイルをローカルリポジトリに反映する。

チェックアウト

作業するブランチを切り替える。チェックアウト後のコミットは切り替えたブランチに対して行われる。

追加

作業ディレクトリの変更ファイルをインデックスに登録する。SVNの追加と同じ感じ。

削除

インデックスに登録した変更ファイルをインデックスから削除する。SVNの追加の取り消しと同じ感じ。

フェッチ

リモートリポジトリの変更を取ってくる。マージはされない。 勝手にマージされると困るときはプルじゃなくてフェッチして手動でマージするといった使い方かな?よく分からない。

プル

リモートリポジトリの変更をローカルリポジトリにマージして反映する。SVNでいうと更新みたいな感じ。

プッシュ

ローカルリポジトリの変更をリモートリポジトリに反映させる。

ブランチ

SVNのブランチと同じようなものだと思うけどよく分からない。 初コミット時にはmasterブランチが作成されて、以降はブランチを分けない限りmasterブランチにコミットしていくことになる。

作業の流れ

  • 「リモートリポジトリ」から「クローン」して作業ディレクトリを作成する。
  • 作業ディレクトリで変更したファイルを「インデックス」に「追加」して「コミット」すると「ローカルリポジトリ」に反映される。
  • 「ローカルリポジトリ」に反映された変更内容は、「プッシュ」することで「リモートリポジトリ」に反映される。
  • 「リモートリポジトリ」に他人が「プッシュ」した内容を「ローカルリポジトリ」に反映させるためには「プル」する。

↓の画像がわかりやすいと思う

f:id:tmysz:20141017154846p:plain