Gitのremote checkoutのおはなし
Gitのリモートブランチをローカルにチェックアウトしたい時、ありますよね。 しかもそのローカルブランチにはトラッキングブランチを指定したいですよね。
僕は今まで
git checkout -b branch_name origin/branch_name
というコマンドを打って実現していました。 このコマンドは、branch_nameというブランチをorigin/branch_nameから作成し、なおかつトラッキングブランチに指定、更にcheckoutまで行ってくれる便利なコマンドです。 以下のコマンドの省略形ですね
git branch branch_name origin/branch_name git checkout branch_name
さて、このコマンドをどこで覚えたのでしょうか。僕はGitBookでこのコマンドを覚えました。
日頃からcheckoutを行っていると、時々この事を忘れて、ローカルにブランチがないのにcheckoutしてしまうことがありました。
ksaito% git checkout branch Branch branch set up to track remote branch release/branch from origin. Switched to a new branch 'branch' ksaito%
あれ、git checkout -b branch origin/branch
と全く同じ結果では・・・?
いつからか省略できるようになったのでしょうか。答えはStackoverflowが教えてくれました。 stackoverflow.com
僕が見てる時点で6000件近い+評価がついています。これによると
gitのバージョンが1.6.6から、 git checkout branch
はremoteブランチが一つのみ存在する場合、自動的に git checkout -b branch origin/branch
に読み替えられるとのことです
?????
gitのバージョンの1.6.6が出たのはいつでしょうか。それはちょうど僕がプログラミングを始めた頃、2006年でした。
https://github.com/git/git/blob/master/Documentation/RelNotes/1.6.6.txt#L145-L147
確かに書いてますね。今までの僕の苦労はなんだったのでしょう。
今まで何回無駄な -b
と origin/branch
を打ってきたのでしょうか。悲しくなります。
P.S.
ちなみに英語版、v2の同じ章にはちゃんと-b
や--track
を使わないリモートブランチのチェックアウトについて触れられていました。やはり英語は全てのエンジニアが身につけるべき最高のスキルですね。
https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches