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 に設定する。