Gitを始めよう
前回のあらすじ: ついにGitのインストール作業が完了した!
まず好きな場所に新しいフォルダを作成し、エクスプローラで開きます。 右クリックしてメニューを出し、「Git Bash Here」を選択します。 すると、黒い画面が表示されます。(以下、Bash の画面と呼ぶことにします。)
※「Git Bash Here」項目を作らないと選択した人は、Shiftキーを押しながらフォルダを右クリックし、「コマンドプロンプトを開く」を選んでください。また、以下の $ を「ディレクトリ>」に読み替えてください。
Bash の画面の最後の行は「$ 」になっているはずです。 このドル記号は、「この右にコマンドを入力してください」という意味です。 では、さっそく git の「コマンド」を入力しましょう! 以下のように書きます。ただし、ここでは Bash の画面と同じく $ 記号を書いていますが、読者のみなさんが入力するのは「git init」だけです。
$ git init
そして Enter キーを押すと、次のようなメッセージが表示されます
$ git init
Initialized empty Git repository in D:/repo/GitIntro/.git/
英語ですが、和訳すると、
空の git リポジトリが D:/repo/GitIntro/.git/ に初期化されました
です。よく分かりませんね。 「.git」という名前のフォルダが作成されたということだけ、おさえておいてください。 ※.git フォルダは「隠しフォルダ」なので、エクスプローラの画面には表示されないかもしれません。
git init コマンドを使って、.git フォルダを作ることで、このフォルダのファイルを git でバージョン管理できるようになります。 すなわち、git にファイルを保存することが可能になります。
では次に、git にファイルを記録させてみましょう。 ひとまずファイルを作成します。 エクスプローラで右クリックして「新規ファイル作成」、としてもいいのですが、ここでは Bash の画面に次のように入力してください。 ($ は入力しなくていいです。)
$ echo "こんにちわ、Gitの世界!" > hello.txt
これで、「こんにちわ、Gitの世界!」と書かれた、hello.txt という名前のテキストファイルが作成されます。 このように1行書いて実行するだけなので、(私の説明の)手間が省けました。やったね。
このファイルを git に記録させるには、以下のように2つのコマンドを実行します。 (繰り返しになりますが、$ は入力しなくていいです。)
$ git add hello.txt
$ git commit
すると、テキストエディタ (GreenPad など) が表示されますね。
「# なんとかかんとか」がテキストエディタにたくさん書いてあると思いますが、これは git からの親切な説明なので、読まなくていいです。
ここでの #
は HSP でいうところの ;
や //
みたいな意味で、コメントになります。
最初の行を以下のように変更してみましょうか。
hello.txt を作成
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: hello.txt
#
これを保存してエディタを閉じると、Bash の画面に次のような出力が現れます。
$ git a hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory.
$ git commit
[master ab258b1] hello.txt を作成
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory.
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
warning (警告) が2つ出ているうえに、commit の結果がややおそろしげな英文ですね。 でも大丈夫! この警告は無視していいやつですし、内容は大したことありません。 おおむねこういう意味です。
$ git commit
[master ab258b1] hello.txt を作成
警告: (省略)
1 つのファイルが変更され、1 行が追加されました (+)
作成 100644 hello.txt
100644 が相変わらず意味不明ですが、これは無視してください……
さてさて。 長くなりましたが、これでようやく「git にファイルを保存する」ことができました! 実際に記録されているか見てみましょう。 とりあえず、先ほどの hello.txt を消してみます。 ファイルの削除は、エクスプローラからやってもいいですが、いちおう Bash の画面を使って消すにはこうします:
$ rm hello.txt
git で管理されたフォルダの「現在の状況」を見るコマンドはいくつかあり、 よく使うのは status と diff です。まず git status から使ってみましょう。
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: hello.txt
no changes added to commit (use "git add" and/or "git commit -a")
長い…… 長いですが、見るべき場所は分かりやすいですね。要するに、
delete: hello.txt
(hello.txt が削除されている)
ということが分かりました。 git status はこのように、git に管理されているファイルの「現在の状況」を大まかに知ることができるコマンドなのです。
次に git diff をしてみましょう。これは「現在どのように編集されているか」を詳細に知ることができるコマンドです。
$ git diff
diff --git a/hello.txt b/hello.txt
deleted file mode 100644
index 76f2ae3..0000000
--- a/hello.txt
+++ /dev/null
@@ -1 +0,0 @@
-こんにちわ、Gitの世界!
長い…… 長いですが、日本語を補って読むと
--- [変更前のファイル名は] a/hello.txt
+++ [変更後のファイル名は] /dev/null [※これはファイルがなくなったという意味]
@@ -1 +0,0 @@
-こんにちわ、Gitの世界!
[「こんにちわ、Gitの世界!」という行が削除された]
ということです。
消してしまったファイルを戻すには、いくつかの方法が考えられますが、ここでは git checkout というコマンドを使います。 以下のコマンドを実行してみてください ($ は入力しなくていい):
$ git checkout -- hello.txt
すると、見事に hello.txt が帰ってくるのが分かります。
ふう、いろいろと長かったですが、今回はこのくらいにしましょうかね。 1回ではよく分からなかったかもしれませんが、上述のことが使いこなせるようになると「git を使える人」といえると思いますよ!
最後にまとめを置いて終わります。 また次回!
$ git init
フォルダに .git フォルダを作成して、git が使えるようにする。
$ git add ファイル名
$ git commit
作成したファイルを git に登録するのに使いました。
これについて、詳しくは次回説明します。
$ git status
git で管理されたファイルの、現在の状況を大まかに知るためのコマンド。
$ git diff
git で管理されたファイルが、現在どのように編集されているかを知るためのコマンド。
git diff を使うことを、差分を取る、といいます。
$ git checkout -- ファイル名
git に登録されたファイルを取り出すのに使いました。