Git clone akan berperilaku menyalin cabang kerja saat ini jauh ke lokal.
Apakah ada cara untuk mengkloning cabang tertentu sendiri tanpa mengganti cabang pada repositori jarak jauh?
Silakan lihat juga jawaban lain yang disukai banyak orang.
Anda mungkin juga ingin memastikan Anda memahami perbedaannya, tidak seperti mayoritas komentator dan downvoters yang marah. Dan perbedaannya adalah: dengan memanggil git clone --branch <branchname> url
Anda mengambil semua cabang dan memeriksa satu. Itu mungkin, misalnya, berarti bahwa repositori Anda memiliki dokumentasi 5kB atau cabang wiki dan cabang data 5GB. Dan setiap kali Anda ingin mengedit halaman depan Anda, Anda mungkin akan mengkloning data 5GB.
Sekali lagi, itu tidak berarti git clone --branch
bukan cara untuk mencapai itu, hanya saja itu bukan selalu apa yang ingin Anda capai, ketika Anda bertanya tentang kloning cabang tertentu.
Jawaban yang akan saya tulis hari ini, dengan mengingat git hari ini adalah
git clone --single-branch --branch <branchname> Host:/dir.git
pada saat menulis jawaban asli di bawah ini, git tidak memiliki opsi --single-branch
, tetapi mari kita pertahankan untuk kepuasan penuh dari lebah yang marah.
Jawaban yang sangat tidak disukai oleh copypasters adalah:
git init
git remote add -t refspec remotename Host:/dir.git
git fetch
git clone -b <branch> <remote_repo>
Contoh:
git clone -b my-branch [email protected]:user/myproject.git
Dengan Git 1.7.10 dan yang lebih baru, tambahkan --single-branch
untuk mencegah pengambilan semua cabang. Contoh, dengan cabang OpenCV 2.4:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Untuk mengkloning cabang tanpa mengambil cabang lain:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f Origin $REMOTE_REPO
git checkout $BRANCH
Ini adalah cara yang sangat sederhana untuk melakukannya :)
Kloning repositori
git clone <repository_url>
Daftar semua cabang
git branch -a
Periksa cabang yang Anda inginkan
git checkout <name_of_branch>
git checkout -b <branch-name> <Origin/branch_name>
misalnya dalam kasus saya:
git branch -a
* master
Origin/HEAD
Origin/enum-account-number
Origin/master
Origin/rel_table_play
Origin/sugarfield_customer_number_show_c
Jadi untuk membuat cabang baru berdasarkan cabang enum-akun-nomor saya saya lakukan:
git checkout -b enum-account-number Origin/enum-account-number
Setelah Anda menekan kembali terjadi hal berikut:
Branch enum-account-number set up to track remote branch refs/remotes/Origin/enum-account-number.
Switched to a new branch "enum-account-number
"
Buat cabang di sistem lokal dengan nama itu. misalnya katakanlah Anda ingin mendapatkan cabang bernama "branch-05142011"
git branch branch-05142011 Origin/branch-05142011
Ini akan memberi Anda pesan seperti - "Cabang cabang-05142011 diatur untuk melacak cabang cabang terpencil-05142011 dari Asal."
Sekarang cukup checkout cabang seperti di bawah ini dan Anda memiliki kode -git checkout branch-05142011
git --branch <branchname> <url>
Tetapi penyelesaian bash tidak mendapatkan kunci ini: --branch
Nikmati.