特定のGitブランチをクローンするには?

Git clone は、リモートの現在の作業ブランチをローカルにコピーする動作をします。

リモートリポジトリでブランチを切り替えることなく、特定のブランチを自分でクローンする方法はありませんか?

git clone -b  

git clone -b my-branch git@github.com:user/myproject.git

Git 1.7.10 以降では、--single-branch を追加して、すべてのブランチを取得しないようにします。例:OpenCV 2.4 ブランチの場合。

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
解説 (10)
ソリューション
git clone --single-branch --branch  

single-branch`オプションは、バージョン1.7.10以降で有効です。

多くの人が好む別の回答も参照してください。

また、その違いを理解しておくことも必要でしょう。その違いとは、git clone --branch urlを実行することで、すべての*ブランチを取得し、その中の1つをチェックアウトすることです。例えば、あなたのリポジトリに5kBのドキュメントやwikiブランチと5GBのデータブランチがあるとします。そして、フロントページを編集したいときには、5GBのデータをクローンすることになるかもしれません。

繰り返しになりますが、git clone --branch がその方法ではないと言っているわけではありません。ただ、特定のブランチの複製について質問しているときに、それが常に達成したいことではないということです。

以下の回答を書いた時点では、git には --single-branch オプションがありませんでした。しかし、怒った蜂が満足するようにこのオプションを残しておきましょう。

コピーマスターに大反対された答えはこうでした。

git init
git remote add -t refspec remotename host:/dir.git
git fetch
解説 (3)

例えば、ローカルシステム上にその名前のブランチを作成する場合、"branch-05142011"という名前のブランチを取得したいとします。

git branch branch-05142011 origin/branch-05142011`とします。

すると、次のようなメッセージが表示されます - "Branch branch-05142011 set up to track remote branch-05142011 from origin."

これで、以下のようにブランチをチェックアウトすれば、コードが完成します。 git checkout branch-05142011

解説 (5)