ヽ(´・肉・`)ノログ

How do we fighting without fighting?

ブランチやタグを指定してgit cloneできることを知った

git clone する時に HEAD 以外が欲しいことがある.

その場合 git clone して,その後 git checkout (branch-name) としていた.そんなに手間でもないので,特に困ってはいなかった.

ふと直接指定できないかと調べてみたところ,できそうだったのでこの驚きを共有したい.

man git-clone

すると

–branch <name>, -b <name> Instead of pointing the newly created HEAD to the branch pointed to by the cloned repository’s HEAD, point to <name> branch instead. In a non-bare repository, this is the branch that will be checkedout. –branch can also take tags and detaches the HEAD at that commit in the resulting repository.

と書いてあったので git clone -b (branch-name) (repository-url) (directory-name) でいけそうだ.

例えば vagrant_config_files には minimum_set というブランチがある.これを clone してみよう.

PRECISE64 /home/niku% git clone -b minimum_set https://github.com/niku/vagrant_config_files.git
Cloning into 'vagrant_config_files'...
remote: Counting objects: 179, done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 179 (delta 95), reused 170 (delta 86)
Receiving objects: 100% (179/179), 23.22 KiB | 0 bytes/s, done.
Resolving deltas: 100% (95/95), done.
Checking connectivity... done
PRECISE64 /home/niku% cd vagrant_config_files/
PRECISE64 /home/niku/vagrant_config_files% git status
# On branch minimum_set
nothing to commit, working directory clean

git status の結果に On branch minimum_set と書いてあるのがわかるだろうか.うまくできたようだ.

今後は積極的に使っていこう.

このエントリーをはてなブックマークに追加