この章では以下のことについて説明しています。
ファイルの変更履歴を含むバージョン管理に必要になる様々な情報を保持する場所をリポジトリと呼びます。
ローカルリポジトリは手元のパソコン内に作成するリポジトリのことです。
後ほど使いますがリモートリポジトリと呼ばれるリポジトリもあり、一般的には複数人で共有することを目的にサーバー上に作られます。
ワークツリーはGitで管理したいファイルを配置するディレクトリのことです。
本稿ではディレクトリはgit_learning
としホームディレクトリ直下に作成します。
以下コマンドを用いることでディレクトリを作成する事ができます。
~/ $ cd ~/
~/ $ mkdir git_learning
~/git_learning/ $ echo "# github learning" > README.md
上記コマンドで「# github learning
」が書き込まれたファイル(README.md)を作成することができます。
git init
コマンドでローカルリポジトリを作成することができます。
作業ディレクトリにローカルリポジトリが作成されるため~/git_learning/
に移動してから実行してください。
~/git_learning/ $ git init
ディレクトリの内容を確認できるコマンドにls
コマンドがあります。
隠しファイルも表示するためにls -a
を実行すると.git
ディレクトリが確認できると思います。
.git
ディレクトリ内にGitが管理するデータが含まれるので削除しないよう気をつけてください。
git status
コマンドを用いることでローカルリポジトリの状態を確認することができます。
以下がgit status
の実行結果です。
~/git_learning/ $ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
On branch master
masterブランチで作業していることを表します。ブランチについては、後ほど解説するので詳しくは割愛します。
No commits yet
一度もコミットしてない場合に表示されます。
Untracked files:
一度も管理対象になってないファイルを表示しています。
ファイルの変更履歴を保存することをコミットすると呼び、変更記録自体もコミットと呼びます。
日時や変更したユーザーを含めたコミットには、コミットメッセージを付加することができます。コミットメッセージは、そのコミットで何を変更したのかを説明します。
コミットする為にステージングと呼ばれる作業を行う必要があります。
ステージングとは、ファイルの現在の状態を次のコミットに含めることです。
ステージングされたファイル郡はステージングエリアに保存されます。
次のコマンドを用いてREADME.md
をステージングします。
git add README.md
ステージング後の変更はコミットに反映されないので注意してください。
ステージングされたかgit status
コマンドを用いて確認してみましょう。以下のような表示に変わっていればステージングできています。
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
コミットする準備を終えたので、早速コミットしましょう。
git commit -m "コミットメッセージ"
ここでは初めてのコミット
をコミットメッセージにします。
もう一度、git status
を使って確認してましょう。
```On branch master
nothing to commit, working tree clean
これは全ての変更がコミットされ、ワーキングツリーとコミットに相違がないことをあらわしています。
コミットメッセージの書き方については[ここ](/github_guide/docs/appendix/good_commitment_message.html)を参照してください。
### 複数行のコミットメッセージを書く
`-m 'コミットメッセージ'`を付加せず`git commit`だけで実行することでエディターが開くので記述後、エディターを終了することで反映されます。
### 変更せずコミットする
`git commit --allow-empty -m "メッセージ"`でできます。
ほとんど使わないけどできることは覚えとくといいでしょう
## 操作を取り消すには
ローカルリポジトリでの取り消し動作については[ここ](/github_guide/docs/appendix/undo_commit.html)を参照してください。
## ファイルの差分を確認する
ファイルの修正前と修正後の違いを差分と言います。
差分を確認するには`git diff`コマンドを使います。
### 差分を確認するファイルを用意する
`README.md`に変更を加えます。
```bash
~/git_learning/ $ echo "## ここは差分" >> README.md
git diff
コマンドを実行して差分を確認してみましょう。
~/git_learning/ $ git diff
diff --git a/README.md b/README.md
index e03ba55..cc7cd82 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
"# github learning"
"## devでの変更"
+"## ここは差分"
+
から始まる行が追記された行です。
git diff <<コミット>>
コミットを表すものであればなんでもおkです。
例