## git初期設定
'''bash
git config --global user.name 'qnzm'
git config --global user.email 'qnzm@gmail.com'
git config --global color.ui auto
git config --global core.editor vim
'''
## ブランチ
### ローカルブランチ
git branch であらわれるブランチ。
/refs/heads/
### リモート追跡ブランチ(remote tracking branch)
他のリポジトリで歴史が作られる家庭を追跡することのみが目的のブランチ。
コミットすることができない。
/refs/remotes/
すべてのブランチは、 git branch -a で確認できる。
''' bash
% git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
'''
''' bash
% ls -alR .git
.git/refs/heads:
total 8
drwxr-xr-x 3 userm staff 102 5 5 13:10 .
drwxr-xr-x 5 userm staff 170 5 5 13:09 ..
-rw-r--r-- 1 userm staff 41 5 5 13:10 master
〜
.git/refs/remotes/origin:
total 16
drwxr-xr-x 4 userm staff 136 5 5 13:10 .
drwxr-xr-x 3 userm staff 102 5 5 13:09 ..
-rw-r--r-- 1 userm staff 32 5 5 13:09 HEAD
-rw-r--r-- 1 userm staff 41 5 5 13:10 master
% cat .git/refs/heads/master
942e60094606c59b90a21e26cd087830180e83c0
% cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
% cat .git/refs/remotes/origin/master
942e60094606c59b90a21e26cd087830180e83c0
'''
### git pull
1. git fetch にて、リモート追跡ブランチを更新
2. git merge にて、指定されたリポジトリのブランチをマージ
### .git/config
cloneしてきたら、configには以下の記述が。
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = /Users/userm/sketch/app.git
[branch "master"]
remote = origin
merge = refs/heads/master
### git fetch
fetchの部分は、コマンドパラメータ。
一番長い記述だと、
git fetch /Users/userm/sketch/app.git '+refs/heads/*:refs/remotes/origin/*'
第一引数はそのままでも省略できる。
第二引数がリモートブランチの更新を表す。
この第に引数が、configには定義されている。
#### 引数左辺
+refs/heads/*
当該リポジトリから、このパターンにマッチするリファレンスを取ってこい
→ リポジトリのローカルブランチすべて取ってこい
#### 引数右辺
refs/remotes/origin/*
とってきたリファンレンスを、手元のこの階層にしまえ
→ /refs/remotes/origin/master にコピーする。