Gitが全然分からなかったので勉強した。眠い。

  • 8
    いいね
  • 1
    コメント

眠い。

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パターンあります。

新規作成

新規プロジェクトを作って、そのプロジェクトをgit管理する。

#homeディレクトリ配下にアプリの基となるディレクトリ作成
cd /home
mkdir myapp
cd myapp

#git initで、カレントディレクトリをGitディレクトリに変換
git init

クローン

既存の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さん「はーい」

なのでプルリク。
納得。

最後に

自己満で申し訳ない。
眠い。



以上。おやすみ。