[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とは
- 「分散型バージョン管理システム」
- 集中型バージョン管理システムであるSVNなどと比較して分散型とよばれます
- 集中型と分散型の違いは、こちらのサイトがわかりやすいです。
@IT Git 解説記事 http://www.atmarkit.co.jp/ait/articles/1307/05/news028_3.html
- チームで開発する際に、上書きを防止することができるのです。
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ディレクトリを好きな所に作成してください。
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には、他にもたくさんのコマンドがあります。ネット上では、こちらのサイトが詳しく解説をしています。
当サイトでも少しずつ紹介していきたいと思います。
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]