github_guide


Project maintained by futchiis Hosted on GitHub Pages — Theme by mattgraham

ローカルリポジトリを使う

この章では以下のことについて説明しています。

リポジトリとは

ファイルの変更履歴を含むバージョン管理に必要になる様々な情報を保持する場所をリポジトリと呼びます。
ローカルリポジトリは手元のパソコン内に作成するリポジトリのことです。
後ほど使いますがリモートリポジトリと呼ばれるリポジトリもあり、一般的には複数人で共有することを目的にサーバー上に作られます。

Gitで管理するファイルを作成する

ワークツリーを作成する

ワークツリーは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)

git statusの見方

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です。

目次へ