Git cloneは現在のリモートブランチをローカルにコピーするように振舞います。
リモートリポジトリのブランチを切り替えずに自分で特定のブランチを複製する方法はありますか?
多くの人が好む その他の答え もご覧ください。
また、大多数の怒っているコメンターやダウン投票者とは異なり、必ず違いを理解しておくことをお勧めします。違いは:git clone --branch <branchname> url
を呼び出すことで、 all ブランチをフェッチしてチェックアウトすることです。たとえば、リポジトリに5kBのドキュメントまたはWikiブランチと5GBのデータブランチがあるとします。そして、あなたがあなたのフロントページを編集したい時はいつでも、あなたは5GBのデータのクローンを作成することになるかもしれません。
繰り返しますが、これはgit clone --branch
がそれを達成する方法ではないということではありません。特定のブランチのクローンを作成することを求めているときに、 always を達成したいということではありません。
今日のgitを念頭に置いて、今日書く答えは次のようになります。
git clone --single-branch --branch <branchname> Host:/dir.git
下記の元の答えを書いている時点で、gitは--single-branch
オプションを持っていませんでしたが、怒っている蜂を完全に満足させるためにそれを保存しましょう。
コピーパスタにとても嫌われた答えはこれでした:
git init
git remote add -t refspec remotename Host:/dir.git
git fetch
git clone -b <branch> <remote_repo>
例:
git clone -b my-branch [email protected]: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
他のブランチをフェッチするブランチwithoutを複製するには:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f Origin $REMOTE_REPO
git checkout $BRANCH
これはそれをするための本当に簡単な方法です:)
リポジトリを複製する
git clone <repository_url>
すべての枝を一覧表示する
git branch -a
必要なブランチをチェックアウトする
git checkout <name_of_branch>
git checkout -b <branch-name> <Origin/branch_name>
例えば私の場合は:
git branch -a
* master
Origin/HEAD
Origin/enum-account-number
Origin/master
Origin/rel_table_play
Origin/sugarfield_customer_number_show_c
私のenum-account-numberブランチに基づいて新しいブランチを作成するには、次のようにします。
git checkout -b enum-account-number Origin/enum-account-number
あなたがリターンをヒットした後、次のことが起こります:
Branch enum-account-number set up to track remote branch refs/remotes/Origin/enum-account-number.
Switched to a new branch "enum-account-number
「
その名前でローカルシステムにブランチを作成します。例えば "branch-05142011" という名前のブランチを取得したいとします。
git branch branch-05142011 Origin/branch-05142011
「Branch branch-05142011がOriginからのリモートブランチbranch-05142011を追跡するように設定されています。」のようなメッセージが表示されます。
今ちょうど以下のようにブランチをチェックアウトして、あなたはコードを持っています - git checkout branch-05142011
git --branch <branchname> <url>
しかしbash補完はこのキーを取得しません:--branch
楽しい。