Git と仲良くなりたい(希望)

こんにちは。麺処まつば副店長です。

今日はふと当ブログへのリンク元を見ていたら
MacBook air 調理器具」という検索ワードが目に入りました。
どなたですか。こんな動画を検索して自分もやってみようなんていうのは。
http://www.gizmodo.jp/2011/09/macbookair_knife.html
いけませんよ。店長の大目玉をくらいますよ。

さて、先日。店長に「ちゃんと Git 使いこなしているのか」と聞かれました。
副店長 「あんまr…(ごにょごにょ)」 → 怒られました。
Git については、既に分かりやすい本や記事等沢山あるかと思いますが
自分の頭の中を整理する、という意味で簡単にまとめてみます。



がいねん(漢字で書くとおこがましいので平仮名にしてみました)

元々 Subversion 使いの副店長は、Git の概念を理解するのに少々戸惑いました。

Subversion て、こんな感じでリポジトリサーバから
各ローカルに作業コピーを持ってきて集中管理という形式だと理解しています。
(↓こんなカンジのイメージ)

一方 Git ってのは、作業コピーもリポジトリも全部自分のローカルにあると
店長に教わり、一瞬こんな状態→( ゚д゚) になりましたけども
そこは自分専用のリポジトリであるという理解で一旦納得。

そして、ワークツリー(作業コピーと同義?)とリポジトリの間にもうひとつ
「インデックス」という概念があるというので、またこんな状態→( ゚д゚)
(↓こんなカンジのイメージ)

どうもまだコミットしたくないものを一度ここに仮置きしておく、
コミット待ちのファイルをココに追加しておく、という時に使うようです。
仮コミット置き場のようなものということで理解。

↓Git の全体像はきっとこう…。あってますか…?>店長
(後日談:店長が「合ってる」と言ったので多分合ってます。)

Git というのが何となく掴めてきた(気がする)ので、
使うためのコマンド達をまとめてみようと思います。

副店長は Git まだまだ使いこなせていないので
覚えたら随時追加していくという形で書いていこうと思います。



コマンド

[2013/07/08]
なんだかとても見づらいので、じわじわページ分割します。

リポジトリの作成・コピー

コマンド 概要
git init リポジトリの新規作成
git clone 既存リポジトリをローカルにコピー。svn checkoutぽいもの

ファイルの変更・操作

コマンド 概要
git add インデックスに変更を追加
git mv ファイル名の変更・移動
git rm ファイル削除
git commit インデックスの中身をリポジトリに登録
git reset コミットの取り消し
git revert 過去のバージョンに上書きコミット

ファイルの状態・履歴

コマンド 概要
git status 変更したファイルを表示
git diff 差分を表示
git log コミットログを表示
git show コミット詳細を表示

リモートリポジトリとの連携

コマンド 概要
git pull 以下、詳細はまだ書いていません。
git fetch
git push
git remote

ブランチ周り

コマンド 概要
git branch 以下、詳細はまだ書いていません。
git checkout
git merge
git mergetool
git rebase
git stash
git show-branch
git tag