pengembangan-web-mp-pd.com

Bagaimana cara mengkloning cabang Git tertentu?

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?

2484
Scud

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
643
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
7212
Jorge E. Cardona

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
232
Edmar Miyake

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>
230
superlogical
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

"

81
dkinzer

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

23
PlanetUnknown
git --branch <branchname> <url>

Tetapi penyelesaian bash tidak mendapatkan kunci ini: --branch

Nikmati.

15
savgur