連載
» 2016年04月26日 05時00分 公開

こっそり始めるGit/GitHub超入門(2):“はじめのGit”――超基本的な作業フローと5つのコマンド (3/3)

[平屋真吾,クラスメソッド]
前のページへ 1|2|3       

ファイルを変更する

 ここまでの操作で「Gitの基本的な作業フロー」を1周分行いました。ここで、さらにファイルを変更して、作業フローの1周目と何が変わるのかを見てみましょう。

図6 「ファイルを変更する」で行う操作

 「ファイルを追加する」で作成した「hello.txt」ファイルに対し「echo」コマンドを使用して2行目を追加します。

$ echo goodbye >> hello.txt
$ cat hello.txt
Hello
goodbye

「Changes not staged for commit」が表すこと

 Gitのステータスを確認します。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
 
    modified:   hello.txt
 
no changes added to commit (use "git add" and/or "git commit -a")

 「Changes not staged for commit」という欄が表示されます。この欄は「ファイルが変更されている」かつ「変更がステージされていない」ファイルがある場合に表示されます。「hello.txt」ファイルは、今「変更済み」状態になっているので、この欄に表示されます。

変更をステージングエリアに追加

 次に、変更をステージングエリアに追加しステータスを確認します。

$ git add hello.txt
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
 
    modified:   hello.txt

 これで「hello.txt」ファイルに対する変更をコミットする準備が整いました。

 今回は、既にGitが変更を追跡しているファイルに対する変更をステージングエリアに追加しました。そのため、「Changes to be committed」欄のファイル名の前に「modified」(変更済み)と書かれています。

変更をコミット

 最後にコミットします。

$ git commit -m "edit hello.txt"
[master 998e5a0] edit hello.txt
 1 file changed, 1 insertion(+)

コミット履歴を確認する――git logコマンド

 本記事では、これまでにコミットを2回行いました。「git log」コマンドを使用してコミットの履歴を確認してみましょう。

$ git log
commit 998e5a0b8f7397f93ba18d7551d804812e957069
Author: Shingo Hiraya <shingo.hiraya@example.com>
Date:   Mon Apr 18 06:56:39 2016 +0900
 
    edit hello.txt
 
commit dc32bd20c33bcae780565ccf4c51745ddefd44dd
Author: Shingo Hiraya <shingo.hiraya@example.com>
Date:   Mon Apr 18 01:27:58 2016 +0900
 
    first commit

 コミットごとに以下の情報が表示されます。

  • SHA-1チェックサム
  • 作者の名前とメールアドレス
  • コミット日時
  • コミットメッセージ

「-p」オプションでコミットの変更点を表示

 「git log」コマンドにも、たくさんのオプションが存在します。例えば、「-p」オプションを使うと、そのコミットの変更点を表示することもできます。

$ git log -p
commit 998e5a0b8f7397f93ba18d7551d804812e957069
Author: Shingo Hiraya <shingo.hiraya@example.com>
Date:   Mon Apr 18 06:56:39 2016 +0900
 
    edit hello.txt
 
diff --git a/hello.txt b/hello.txt
index e965047..c86756d 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
 Hello
+Goodbye
 
commit dc32bd20c33bcae780565ccf4c51745ddefd44dd
Author: Shingo Hiraya <shingo.hiraya@example.com>
Date:   Mon Apr 18 01:27:58 2016 +0900
    first commit
 
diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..e965047
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello

 1回目のコミットで文字列「Hello」を、2回目のコミットで文字列「Goodbye」を追加したことが分かります。

本稿で紹介したGitの基本的なコマンド一覧

 本稿では「Gitの基本的な作業フロー」について解説しました。Gitを使用したバージョン管理のフローについてのイメージをつかめたでしょうか。

 本稿で紹介したGitのコマンドは以下の通りです。特に「git status」「git add」「git commit」コマンドは頻繁に使うことになります。

  • git init:カレントディレクトリにGitリポジトリを新規作成する
  • git status:作業ディレクトリとステージングエリア上のファイルの状態を表示する
  • git add <ファイル名>:変更済みのファイルをステージングエリアに追加する
  • git commit:ステージ済みのファイルのスナップショットを「Gitリポジトリ」に保存する。コミットメッセージはエディタで入力する
  • git commit -m "<メッセージ>":動作は「git commit」と基本的に同じ。コミットメッセージをインラインで指定したい場合は、こちらを使う
  • git log:コミットの履歴を表示する
  • git log -p:「git log」で表示可能な項目を表示しつつ、さらにコミットの変更点も表示する

 次回の記事では今回解説を省略した「ブランチ」について解説する予定です。お楽しみに!

参考書籍

  • Pro Git』(written by Scott Chacon and Ben Straub and published by Apress)

著者紹介

平屋真吾

クラスメソッド株式会社 iPhoneアプリサービス事業部所属のプログラマーです。iOSアプリの開発がメインですが、デザインやAWSなども勉強中です。

ブログ:http://dev.classmethod.jp/author/hiraya-shingo/


前のページへ 1|2|3       

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。