Git をつかってバージョン管理

Satoshi Nakagawa

1 はじめに

Windows で github で共同作業に参加するための 手順表です。 このレッスンの前に ダウンロードGithub に登録する のレッスンを必ず読んでください。 そのレッスンでの手順通りにしていれば、 すでにあなた (foo) の github.com サイト (https://github.com/foo/) に、リポジトリ (bar) (https://github.com/foo/bar) がある筈です。 (以下 foo の部分は、 あなたの実際のアカウントネームに読み換えてください)。

2 Git 管理のディレクトリをつくる

これからの作業はすべてローカルの terminal 上でおこないます。 Windows terminal を立ち上げてください。 そして、以下のコマンドを打ちます。

cd
mkdir github

cd は “change directory”1 の意です。 何も引数をつけないと home directory に移動する筈です。 たぶん、ウィンドウズでは C:\ になるのだと思います。 mkdir は “make directory” の意です。 以上で、ホームディレクトリの下に github というディレクトリができました。 これで、つぎのようなディレクトリ構造ができている筈です。

ディレクトリ構造
ディレクトリ構造

かくして作った ~/github/ の下に、 さきほとの bar リポジトリをクローン (ダウンロードみたいなもの)します。 (foo の部分は、 各自のアカウントネームに替えてください)

cd ~/github/
git clone git@github.com/foo/bar

1行目のコマンド (cd) で、 現在ディレクトリが ~/github/ にかわります。 2行目が gitクローン のコマンドです。 さきほど github でつくった bar がクローン されます。 ディレクトリ構造は以下のようになります。

ディレクトリ構造
ディレクトリ構造

あたらしく出来た bar ディレクトリを 「作業ディレクトリ」 working_directoryh と呼びます。

3 ディレクトリの中身

それでは(bar リポジトリを)クローンした bar ディレクトリの中身を見てましょう。 ディレクトリの中身(ファイルたち)を見るには ls (“list” の意です)コマンドをつかいます。

cd ~/github/bar/
ls -la

bar リポジトリの README.md.gitignore が そのまま作業ディレクトリにダウンロードされていることが わかるでしょう。 その他に .git/ という名前のディレクトリがある筈です。 この部分をローカルリポジトリ2 と呼びます。

4 ローカルリポジトリ

この節では、 GitHub があることは忘れて、ローカルのマシンだけの 話題に限定します。

4.1 構造

三つの抽象的ステージがあるとかんがえてください。 じっさいの作業は作業ディレクトリの中のファイルの編集や 削除などです。 適当な段階3 で変更作業を ステージングエリア (あるいは「インデックス」)に登録 (git add)します。 この段階では登録をやめること (git reset) は簡単にできます。

変更に自信をもてる段階になったら、 ステージングエリアからローカルリポジトリに コミット します

ローカルの構造
ローカルの構造

4.2 じっさいの作業

じっさいに作業をしてみましょう。

4.2.1 編集

README.md を編集しましょう。 エディタ には atom をつかっていることとします。

atom README.md

README.md の中身は bar と書かれているだけです。 これを削除して、 以下のように書き直します。

---
title: bar の README
author: foo
---

ここで使われいるのは markdown と 呼ばれる記法ですが、 それについては後で述べることにします。

4.2.2 ステージエリアに登録する (add)

さて、ここで以下のコマンドを打ちます。

git status
git add README.md
git status

さいしょの git status では、 “Changed not staged to commit” のもと、4 README.md が挙げられている筈です。 具体的には git からのメッセージに 以下の行がある筈です。

modified:  REAMD.md

二行目で、 この README.md をステージングエリアに add/stage します。

「まだ stage されていない」ファイルはなくなりましたが、 その代わり「まだ commit されていない」ファイルとして README.md が挙げられている筈です。


gitGraph BT:
options
{
    "nodeSpacing": 100,
    "nodeRadius": 10
}
end
commit
branch newbranch
checkout newbranch
commit
commit
checkout master
commit
commit
merge newbranch


  1. directory は、ウィンドウズになってから 何故か「フォルダ」という名前になってしまいました。

  2. 「ローカルリポジトリ」は「作業ディレクトリ」と同じという 説明もあるのですが、ここではその説明はとりません。

  3. どのくらいが「適当な段階」かということについては、 別の場所で述べます。

  4. ステージングエリアに 「add する」とも、 「stage する」とも言われます。