git checkout の --track オプションの意味

git checkout の --track オプションは、リモートリポジトリのブランチ X を起点にブランチ A を作った場合に、引数なしの git pull でブランチ X を fetch してブランチ A にマージできるように設定してくれる。具体的には branch.A.remote と branch.A.merge を設定してくれる。
とは言っても、git checkout のデフォルトの動作は --track オプションをつけたのと同じ。追跡しないようにするには --no-track オプションをつける。

実例。

[takeyuki@f00-193 takeyuki3]$ git checkout --no-track -b v3.0 origin/v3.0
Switched to a new branch "v3.0"
[takeyuki@f00-193 takeyuki3]$ git config -l | grep v3.0 <- なにも表示されない
[takeyuki@f00-193 takeyuki3]$ git checkout master
Switched to branch "master"
[takeyuki@f00-193 takeyuki3]$ git branch -d v3.0
Deleted branch v3.0.
[takeyuki@f00-193 takeyuki3]$ git checkout -b v3.0 origin/v3.0
Branch v3.0 set up to track remote branch refs/remotes/origin/v3.0.
Switched to a new branch "v3.0"
[takeyuki@f00-193 takeyuki3]$ git config -l | grep v3.0
branch.v3.0.remote=origin
branch.v3.0.merge=refs/heads/v3.0

git checkout や git branch でデフォルトの動作を --track じゃなくて --no-track にしたい場合は構成変数 brnach.autosetupmerge を false に設定する。