Gitの基本的な使い方

WEB+DB PRESS Vol.50』の「はじめてのGit」にあるチュートリアル「ひとりで使う、Gitの基本的な使い方」をやってみたので、頻繁に使いそうなコマンドをまとめてみた。

やや直感的だが、全体像を図にするとこんな感じだろうか。

Media_httpexdesignjpw_fntkz

 

リポジトリの初期化

  作業ディレクトリ内に ".git"という不可視ディレクトリができる。

$ git init

 

基本設定の確認

コミットに記録されるユーザー名、メールアドレスが確認できる。

$ git var GIT_COMMITTER_IDENT
$ git var GIT_AUTHOR_IDENT

 

コミットするファイルの指定

現在のワークツリーの状態を記録してほしいと依頼する。gitはインデックスにそれを記録する(ステージするとも言う)。 初回はトップレベルのディレクトリ以下"."を指定する。 ※ コミットとは、ある時点のプロジェクトの状態を記録したもの。

$ git add .

特定のファイルやディレクトリを指定することもできる。

$ git add パス...

ファイル指定などはせず、一括でリクエストしたい時。

$ git add -u

論理的に関連のない変更を別々に記録したい時(yes, noで対話的に選ぶ)。

$ git add -p

新しく作成されたファイルも含めて記録したい時。

$ git add -A

 

コミットの実行

  "-m"でコミットに記録するログメッセージを指定できる。出力の「2d8f1e9」はコミットオブジェクトのオブジェクト名(先頭数文字)。

$ git commit -m "Jupitterホームページ"
[master (root-commit) 2d8f1e9] Jupitterホームページ
 1 files changed, 9 insertions(+), 0 deletions(-)
 create mode 100644 index.html

addなしで一括でコミットしたいとき("git add -u"に続けてすぐ"git commit"を実行するのと同義)。

$ git commit -a -m 'メッセージ'

変更点を確認しながらログメッセージを残したいとき(エディタが起動し"git diff --cached"の出力も表示される)。

$ git commit -v

 

変更を確認

まだaddしていないものが表示される(インデックスとワークツリーの違い)。「@@ -5,5 +5,11 @@」というのは「変更前5行目から開始しトータル5行を表示。変更後5行目から開始しトータル11行を表示」を意味する。

$ git diff
diff --git a/index.html b/index.html
index c60364e..36401f4 100644
--- a/index.html
+++ b/index.html
@@ -5,5 +5,11 @@
.....

最新のコミットとワークツリーの違い。

$ git diff HEAD

最新のコミットとインデックスとの違い。

$ git diff --cached

 

変更履歴を確認

すべてのコミットを順に出力する。

$ git log

出力するコミットの数を制限する。

$ git log -2

変更内容も表示する(たくさん出てくるので上と組み合わせるのがベター)。

$ git log -p

 

プレビューを確認

今の状態で"git commit"を実行したら、どのファイルへの変更がコミットされ、どのファイルへの変更はコミットされずに残るかを確認できる。

$ git status

 

コミットの内容を確認

  引数がない場合は"git show HEAD"を同じ。コミットオプジェクトを指定すればその内容が見られる。

$ git show

 

コミットの依頼を取り消す

  引数がない場合はインデックスが現在のHEADと同じになる。ファイルやディレクトリを指定すればそれに加えた変更は次のコミットに含まれない。

$ git reset

Comments (0)

Add a Comment