git の リモートブランチをclone したい
直接 clone できるわけじゃないけど、新規でclone する場合は結構楽に行える。
いつも流れ作業でやってるし過去にも書いてるんだけど。誰かに伝えるために改めてメモ。
作業の流れ
最初に、メインなブランチ(master)を clone する。 その後にリモートブランチをcheckout する。
作業コマンド
全体の作業の流れはこんな感じ。
git clone ${REPO_URL} cd ${REPO_DIR} git fetch git checkout -b ${BR_NAME} origin/${BR_NAME}
作業例
既存フォルダがあれば消す。
takuya@osx:~/Desktop$ rm code -rf
clone する
clone した時点では、master(main) ブランチ
takuya@osx:~/Desktop$ git clone git@ssh.mygit.example.com:repo/sample-/code.git Cloning into 'code'... remote: Enumerating objects: 413, done. remote: Counting objects: 100% (413/413), done. remote: Compressing objects: 100% (143/143), done. remote: Total 16630 (delta 315), reused 302 (delta 247), pack-reused 16217 Receiving objects: 100% (16630/16630), 98.06 MiB | 13.38 MiB/s, done. Resolving deltas: 100% (5694/5694), done. Checking out files: 100% (832/832), done.
git フォルダ内部へ移動
takuya@osx:~/Desktop$ cd code
リモートブランチの状態を調べる
takuya@osx:~/Desktop/code$ git fetch takuya@osx:~/Desktop/code$ git branch -r origin/HEAD -> origin/master origin/deploy-test origin/master origin/staging
リモートブランチをチェックアウト
takuya@osx:~/Desktop/code$ git checkout -b staging origin/staging Branch 'staging' set up to track remote branch 'staging' from 'origin'. Switched to a new branch 'staging'
チェックアウト結果を調べる。
takuya@osx:~/Desktop/code$ git branch master * staging
ポイント
git ブランチは、ローカルとリモートで別々に存在します。
リモートのブランチをローカルでチェックアウトして使います。
チェックアウト時に、ローカルで変更(差分)があると、コンフリクトが発生したり、自動マージが走ったりします。注意してください。