Bagaimana cara mengkloning cabang git tertentu?

Git clone akan menyalin cabang kerja jarak jauh saat ini ke cabang lokal.

Apakah mungkin untuk entah bagaimana mengkloning cabang tertentu tanpa mengganti cabang dalam repositori jarak jauh?

2255
16 дек. Scud ditetapkan pada 16 Desember 2009-12-16 02:06 '09 pada pukul 02:06 2009-12-16 02:06
@ 7 jawaban

Silakan lihat juga jawaban lain yang disukai banyak orang.

Anda juga dapat memastikan bahwa Anda memahami perbedaannya, tidak seperti kebanyakan komentator dan downvoter jahat. Dan perbedaannya adalah sebagai berikut: memanggil git clone --branch <branchname> url you git clone --branch <branchname> url semua cabang dan periksa satu. Ini mungkin, misalnya, berarti bahwa repositori Anda memiliki dokumentasi 5 KB atau cabang wiki dan cabang data 5 GB. Dan kapan pun Anda ingin mengedit beranda, Anda dapat mengkloning 5 GB data.

Sekali lagi, ini tidak berarti bahwa git clone --branch bukan cara untuk melakukan ini, itu hanya tidak selalu apa yang ingin Anda capai ketika Anda bertanya tentang kloning cabang tertentu.

Jawaban yang akan saya tulis hari ini, dengan 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 simpan untuk sepenuhnya memuaskan lebah jahat.

Coppasters tidak begitu menyukai jawabannya:

 git init git remote add -t refspec remotename host:/dir.git git fetch 
396
16 дек. Jawabannya diberikan oleh Michael Krelin - hacker 16 Desember. 2009-12-16 02:09 '09 pada pukul 2:09 2009-12-16 02:09
 git clone -b <branch> <remote_repo> 

Contoh:

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

Dalam Git 1.7.10 dan yang lebih baru, tambahkan - --single-branch untuk mencegah semua cabang dari sampel. Contoh dengan cabang OpenCV 2.4:

 git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git 
6921
31 дек. Jawabannya diberikan oleh Jorge E. Cardona pada tanggal 31 Desember. 2010-12-31 08:36 '11 pada pukul 8:36 2010-12-31 08:36

Untuk mengkloning cabang tanpa mengekstraksi cabang lain:

 mkdir $BRANCH cd $BRANCH git init git remote add -t $BRANCH -f origin $REMOTE_REPO git checkout $BRANCH 
225
08 сент. Jawabannya diberikan oleh Edmar Miyake 08 Sep. 2011-09-08 17:34 '11 pada 17:34 2011-09-08 17:34

Berikut ini cara mudah untuk melakukannya :)

Penyimpanan klon

 git clone <repository_url> 

Daftar semua cabang

 git branch -a 

Lihatlah cabang yang diinginkan

 git checkout <name_of_branch> 
213
14 июля '11 в 12:42 2011-07-14 12:42 jawabannya diberikan superlogis 14 Juli '11 pada 12:42 2011-07-14 12:42
 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 nomor enum-akun saya, saya lakukan:

 git checkout -b enum-account-number origin/enum-account-number 

Setelah Anda mengklik kembali, berikut ini akan terjadi:

 Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number. Switched to a new branch "enum-account-number 

"

74
15 нояб. jawaban yang diberikan oleh dkinzer 15 November 2011-11-15 22:34 '11 pada jam 10:34 2011-11-15 22:34

Buat cabang di sistem lokal dengan nama ini. misalnya katakanlah Anda ingin mendapatkan cabang bernama "branch-05142011"

git branch branch-05142011 origin/branch-05142011

Dia akan memberi Anda pesan seperti "Cabang cabang 05142011, dikonfigurasi untuk melacak cabang terpencil cabang 05142011 dari sumber."

Sekarang cukup telusuri utasnya, seperti yang ditunjukkan di bawah ini, dan Anda memiliki kode -
git checkout branch-05142011

20
15 мая '11 в 22:20 2011-05-15 22:20 jawabannya diberikan oleh PlanetUnknown pada 15 Mei '11 pukul 22.20 2011-05-15 22:20
 git --branch <branchname> <url> 

Tetapi penyelesaian bash tidak mendapatkan kunci ini: - --branch

Selamat menikmati

14
07 сент. jawab diberikan savgur 07 sept. 2011-09-07 13:16 '11 pada 13:16 2011-09-07 13:16

Pertanyaan lain tentang tag atau Ajukan Pertanyaan