眠い。
Gitとは
分散型バージョン管理システム
大きな構成から知ろう!
Gitは、大きく以下の3つからなる。
- Gitディレクトリ
- プロジェクトのためのメタデータと、オブジェクトのデータベースがあるところ
- 作業ディレクトリにクローンしたり、ステージング環境からコミットを受付けて、永久不変に保持するスナップショットとして保持する
- 作業ディレクトリ
- プロジェクトの一つのバージョンの単一チェックアウト
- 新規作成するか、クローンする事で作成される
- ステージングエリア
- 次のコミットに何が含まれるかに関しての情報を蓄えた場所
- 作業ディレクトリからスナップショットを受付け、Gitディレクトリにコミットする
つまり
「 - 」 → (新規作成) → 「作業ディレクトリ」
「Gitディレクトリ」 → (クローン) → 「作業ディレクトリ」
「作業ディレクトリ」 → (add) → 「ステージングエリア」
「ステージングエリア」 → (コミット) → 「Gitディレクトリ」
というサイクルになる。
ここまでOK( ・ω・ )??
コマンドで確認していく
Step1. ユーザ設定
まず初めに、ユーザ/メールを設定する必要がある。
git config --global user.name "ユーザ名"
git config --global user.email "メールアドレス"
git config -l
Step2. 作業ディレクトリ作成
上記したように、2パターンあります。
パターン1:新規作成
新規プロジェクトを作って、そのプロジェクトをgit管理する。
#homeディレクトリ配下にアプリの基となるディレクトリ作成
cd /home
mkdir myapp
cd myapp
#git initで、カレントディレクトリをGitディレクトリに変換
git init
パターン2:クローン
既存のGitディレクトリをクローンを作る。クローンって厨二っぽくて格好良い。
今回は例として、ここに書いてるようにGritをクローンする。
#homeディレクトリ配下にアプリの基となるディレクトリ作成
cd /home
mkdir myapp
cd myapp
#git cloneで、カレントディレクトリにGritをクローンする
git clone git://github.com/schacon/grit.git
Step3. 作業ディレクトリ→ステージングエリア→Gitディレクトリへの一連の上げ方
#index.htmlを作成/編集
cd /home/myapp
vim index.html
#git addで、ステージングエリアに上げる
git add index.html
#git commitで、Gitディレクトリに上げる
git commit
この段階で役立つコマンドがいくつかあるので紹介!必見!
git add .
: 現在ディレクトリ配下の変更を全てadd
git status
: 現在の状態を教えてくれる。(addすればいいのか、commitすればいいのか、みたいな)
git diff
: 変更の差分を教えてくれる。(addする前に使う。addした後は--cachedオプションを付ける)
git log
: コミット履歴が見れる。色々オプションもあるので
Step4. 直前のコミットを変更したい!
って事ありますよね。
「コミットしたけど変数名間違えた。けど、コミットするほどの内容じゃないし、、、どうしよう。」って事。
#add -> commit(間違) -> ファイル編集 -> add -> 以下のコマンド
git commit --amend
Step5. コミットを取り消したい!!!
って事もありますよね。
git reset --hard HEAD
: 作業ディレクトリまで上書き(hard)
git reset --soft HEAD
: 作業ディレクトリまでは上書かない(soft)
git reset --hard HEAD~2
: 2個前に戻る(HEAD~2)
git reset --hard a1b2c3d4e5
: 指定された場所に戻る(git logした時のアレ)
Step6. ブランチを切りたい!マージしたい!
ブランチっていうのは「分岐」。マージっていうのは「合流」。
詳しくは調べて下さい。(只今am03:00)
チェックアウトっていうのも、調べて下さい。(眠い)(元気になったら投稿編集します)
git branch #現在のブランチ(default:master)
git branch hoge #hogeを作る
git checkout hoge #hogeに移動
git marge hoge #hogeをmasterにmarge #masterで実行
Step7. logファイルはバージョン管理から無視したい!!!
カレントディレクトリに、ファイル .gitignore
を生成する。
# filename: .gitignore
*.log
Step8. プルリク!!!
Gitと言えば「プルリク」!
よく聞きますよね、プルリクエスト。
コマンドだとこうなります。
git push origin master
プルリクエストを受取るのは、以下のコマンドです。
git pull origin master
プルリクなのにプッシュ.....
何でプッシュなんだろう.....
と思ったら、こういう事ですね。
Aさん「編集したよ、Bさん!プルしておいて!pullをrequest!!!」
Bさん「はーい」
なのでプルリク。
納得。
最後に
自己満で申し訳ない。
眠い。
以上。おやすみ。