Lento con forza

大学生気分のIT系エンジニアが色々書いてく何か。ブログ名決めました。

gitのリモートブランチをチェックアウトしたい時

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でこのコマンドを覚えました。

Git - リモートブランチ

日頃から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

確かに書いてますね。今までの僕の苦労はなんだったのでしょう。 今まで何回無駄な -borigin/branch を打ってきたのでしょうか。悲しくなります。

P.S.

ちなみに英語版、v2の同じ章にはちゃんと-b--trackを使わないリモートブランチのチェックアウトについて触れられていました。やはり英語は全てのエンジニアが身につけるべき最高のスキルですね。 https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches