LoginSignup
10

More than 1 year has passed since last update.

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

Last updated at Posted at 2017-02-13

眠い。

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

なのでプルリク。
納得。

最後に

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



以上。おやすみ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10