開発 備忘録 git

[fusion_builder_container backgroundcolor=”” backgroundimage=”” backgroundrepeat=”no-repeat” backgroundposition=”left top” backgroundattachment=”scroll” video_webm=”” video_mp4=”” video_ogv=”” video_preview_image=”” overlay_color=”” overlay_opacity=”0.5″ video_mute=”yes” video_loop=”yes” fade=”no” bordersize=”0px” bordercolor=”” borderstyle=”” paddingtop=”20px” paddingbottom=”20px” paddingleft=”0px” paddingright=”0px” menu_anchor=”” equal_height_columns=”no” hundred_percent=”no” class=”” id=””][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_text]gitとは

gitに出てくる言葉

  • リモートリポジトリ
    • 共有して使っているリポジトリ
    • ネット上などにある
  • ローカルリポジトリ
    • 自分のためだけに使うリポジトリ
  • インデックス
    • ローカルリポジトリに反映するための準備情報
  • ワークツリー
    • ファイルの編集作業をするディクレクトリ
  • ワークツリーからインデックスに登録する、その後、インデックスにあるものをローカルリポジトリにコミットする

コンソール

Gitをターミナルで利用するには、GitのWebサイトからGitのインストーラをダウンロードしてきてインストールします。
http://git-scm.com/

今回は、Homebrewを使ってインストールしました。

Mac

インストールしたら、アプリケーション/ユーティリティの中にあるターミナルを起動します。
確認のためにversionコマンドを実行してみましょう。Gitのバージョンが表示されればインストールは成功です。出力される文字列はインストールした環境やバージョンによって異なる場合があります。

$ git --version
git version 1.7.7.5 (Apple Git-26)

HomebrewでインストールしたGitを使う時の注意点

Macでは古いGitがインストールされており、MacのGitを参照している可能性があります。
確認するには、which gitを使います。

$ which git
/usr/local/bin/git

HoembrewでインストールしたGitを使う場合には、上記の表示で問題ありません。
一度、ターミナルを閉じて、再度立ち上げて、Gitのバージョンを確認してください。

$ git --version
git version 2.2.2

最新バージョンになっているはずです(2015/1/1/21現在の最新バージョンは2.2.2です)。
バージョンが古い場合、またはwhich gitで参照先が、/usr/bin/gitになっている場合には、/etc/pathsを変更する必要があります。
まず、PATHを確認します。

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

/usr/binが最初に参照されています。そこで、/etc/pathsのファイルの中身を変更して、/usr/local/binを一番上に持ってきます。

$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

変更したらターミナルを再起動してください。

ユーザ名とメールアドレスの登録

インストールしたGitに対して、自分のユーザ名とメールアドレスを登録しましょう。この作業はインストール後の一回だけ行えば大丈夫です。 これは、リポジトリに対してコミットした人の情報として履歴などに表示されます。

コンソール

gitの設定はユーザのホームディレクトリに作成される.gitconfigファイルに記録されています。直接ファイルを編集することもできますが、ここでは、configコマンドを使って設定を行います。

$ git config --global user.name "<ユーザ名>"
$ git config --global user.email "<メールアドレス>"

次のコマンドで、gitの出力をカラーリングすることができます。

$ git config --global color.ui auto

gitのコマンドにはエイリアスを設定することが出来ます。
次のコマンドでは、「checkout」を「co」と省略しても実行できるようになります。

$ git config --global alias.co checkout
それでは、新しいリポジトリをローカルに作成します。ここでは、「tutorial」という名前で空のディレクトリを作成して、Gitの管理下に置きましょう。
以降のチュートリアルでもこのディレクトリを使って進めていきます。

コンソール

まずはtutorialディレクトリを好きな所に作成してください。
tutorialディレクトリをGitの管理下にするには、そのディレクトリに移動してinitコマンドを使用します。

$ git init

ここでは、新しく作成したtutorialディレクトリをGitリポジトリに設定しました。

$ mkdir tutorial
$ cd tutorial
$ git init
Initialized empty Git repository in /Users/hideki/Desktop/tutorial/.git/

これで、gitの対象となるディレクトリとなりました。具体的には、リポジトリが作成されたことになります。ディレクトリの中には、
$ ls -a
. .. .git

このように.gitという隠しディレクトリが作成されています。次にsample.txtというファイルを作ってみましょう。

$ touch sample.txt

このファイルに、適当な文字列を入力してみます。

$ vi sample.txt

上記では、viを使っています。viの設定は、こちらを参照してください。

適当に編集できたら、保存してください。必要に応じて、ファイルが正しく書かれているか確認して下さい。

$ cat sample.txt

 さて、ここで、git statusというコマンドで、確認をしてみましょう。

$ git status

# On branch master

#

# Initial commit

#

# Untracked files:

#   (use “git add …” to include in what will be committed)

#

# sample.txt

nothing added to commit but untracked files present (use “git add” to track)

git statusによって、変更されたファイルを確認することができます。

ここで、git add ファイル名の書式で、インデックスに登録します。

$ git add sample.txt

インデックスというのは、リポジトリに登録するための準備と考えていいでしょう。 git addした後の状態をgit statusでみてみましょう。

$ git status

# On branch master

#

# Initial commit

#

# Changes to be committed:

#   (use “git rm –cached …” to unstage)

#

# new file:   sample.txt

#

先ほどと表示内容が違うことがわかると思います。この後に、コミットをすることによって、リポジトリに反映をすることができます。

$ git commit -m “はじめてのコミット”

[master (root-commit) d8baa61] はじめてのコミット

1 file changed, 1 insertion(+)

create mode 100644 sample.txt

-m オプションに続けてメッセージを入れることで、どのような内容のコミットかを明示的に記録することができます。

$ git status

# On branch master

nothing to commit, working directory clean

gitのワーキングディレクトリがきれいであることがわかると思います。git のログを見てみましょう。

$ git log

commit d8baa61ebf104f559be69c0f2929d676fa0f49e1

Author: hdkworks <XXXXXXX@XXXXXXX>

Date:   Sun Jan 4 04:38:17 2015 +0900

    はじめてのコミット

このように、ログがきれいに残っていることがわかります。

[/fusion_text][fusion_text]

gitをつかってコミットしたファイルを元に戻す

それでは、ここまでコミットしてきたリポジトリを使って、以前のファイルに戻してみましょう。まずgit logでログを見てみましょう。

$ git log

commit c4ceac2e4b9f959e859da8ac3fc48be2158f20fc

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Wed Jan 14 23:23:28 2015 +0900

    5回目久しぶりにアップデート。MacVim入れた後

commit bb8d4997ec26ab51216b1fcf45133631744f4997

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 14:59:03 2015 +0900

    4回めアップデートされたGitで

commit 35da60d1073263c4158c8bf1657ed4349de0129c

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 11:57:48 2015 +0900

    3回めのコミット

commit 272e95438f97b4b6c83997f9c5cf4bfbed8fc87e

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 05:26:52 2015 +0900

    2回めのコミット

commit d8baa61ebf104f559be69c0f2929d676fa0f49e1

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 04:38:17 2015 +0900

    はじめてのコミット

現在のファイルは、下記のとおりです。

$ cat sample.txt

はじめてのGitコマンド

編集をしてみると

3回め

アップデートして4回目テスト

5回目のテストを久しぶりにするなど

それでは、戻したいコミット、今回は4回目に戻りましょう。ハッシュタグとあわせてgit resetというコマンドを使います。

$ git reset –hard bb8d4997ec26ab51216b1fcf45133631744f4997

HEAD is now at bb8d499 4回めアップデートされたGitで

git logとcatで確認しましょう。

$ git log

commit bb8d4997ec26ab51216b1fcf45133631744f4997

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 14:59:03 2015 +0900

    4回めアップデートされたGitで

commit 35da60d1073263c4158c8bf1657ed4349de0129c

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 11:57:48 2015 +0900

    3回めのコミット

commit 272e95438f97b4b6c83997f9c5cf4bfbed8fc87e

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 05:26:52 2015 +0900

    2回めのコミット

commit d8baa61ebf104f559be69c0f2929d676fa0f49e1

Author: hdkworks <XXXXX@XXXXXXX>

Date:   Sun Jan 4 04:38:17 2015 +0900

    はじめてのコミット

$ cat sample.txt

はじめてのGitコマンド

編集をしてみると

3回め

アップデートして4回目テスト

以上のように、ファイルを元に戻すことができました。

最後にgitのリポジトリを見てみましょう。

git branch -a

今回は、ローカルでgit resetを行いましたが、リポジトリを共有している場合には、git resetには、注意が必要です。コミットした直後に、他のかたがcloneしている可能性があるからです。

gitには、他にもたくさんのコマンドがあります。ネット上では、こちらのサイトが詳しく解説をしています。

Sourceforge.jp

当サイトでも少しずつ紹介していきたいと思います。

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]