Bagaimana cara memeriksa cabang Git jarak jauh?

6714

Seseorang mendorong cabang yang dipanggil testdengan git push origin testke repositori bersama. Saya bisa melihat cabang dengan git branch -r.

Sekarang saya mencoba untuk memeriksa testcabang jarak jauh .

Saya sudah mencoba:

  • git checkout test yang tidak melakukan apa-apa

  • git checkout origin/testmemberi * (no branch). Yang membingungkan. Bagaimana saya bisa berada di "no branch"?

Bagaimana cara memeriksa cabang Git jarak jauh?

Juri Glass
sumber
9
@inger Tapi itu tidak termasuk kemungkinan untuk mengubah nama cabang lokal baru (jika Anda ingin --set-upstream nanti dan tetap konsistensi penamaan)
fachexot
15
Saya pikir utas ini tidak membantu. Tampaknya tidak ada yang berhasil, pertanyaan awal tampaknya telah hilang dalam banyak jawaban. Saya telah membaca setiap kata, mencoba semuanya di bawah, dan tidak tahu bagaimana melakukan apa yang ingin OP lakukan.
Tony Ennis
6
Perintah Git tidak intuitif untuk memulai, tambahkan perubahan yang diperkenalkan dengan versi terbaru ke dalam campuran dan Anda memiliki halaman ini ...
Christophe Roussy
14
Saya merasa seperti saya minum pil gila. Saya mencoba untuk checkout cabang dari upstream, bukan hanya origin, dan setiap jawaban yang disarankan tidak melakukan apa pun yang sangat membantu (pun-intended). EDIT - maafkan saya, banyak saran yang terkandung dalam 2 jawaban teratas tidak berguna; Yang ketiga ( git branch test origin/test) adalah yang berfungsi. Senang 2 teratas memiliki 20x jumlah suara ...
dwanderson
4
Mungkin Anda memiliki file bernama 'test' di pohon pekerjaan Anda, lihat stackoverflow.com/a/45006389/792416 untuk detailnya.
pak tua

Jawaban:

9151

Memperbarui

Jawaban Jakub sebenarnya membaik dalam hal ini. Dengan versi Git ≥ 1.6.6, dengan hanya satu jarak jauh, Anda bisa melakukannya:

git fetch
git checkout test

Sebagai pengguna masukomi menunjukkan dalam komentar, git checkout testTIDAK akan bekerja di git modern jika Anda memiliki beberapa remote. Dalam hal ini digunakan

git checkout -b test <name of remote>/test

atau steno

git checkout -t <name of remote>/test

Jawaban Lama

Sebelum Anda dapat mulai bekerja secara lokal pada cabang jarak jauh, Anda perlu mengambilnya sebagaimana dipanggil dalam jawaban di bawah ini.

Untuk mengambil cabang, Anda hanya perlu:

git fetch origin

Ini akan mengambil semua cabang jarak jauh untuk Anda. Anda dapat melihat cabang yang tersedia untuk checkout dengan:

git branch -v -a

Dengan cabang jarak jauh di tangan, Anda sekarang perlu memeriksa cabang yang Anda minati, memberi Anda copy pekerjaan lokal:

git checkout -b test origin/test
Hallki
sumber
398
Untuk memperluas ini: git tidak memungkinkan Anda untuk bekerja di cabang orang lain. Anda hanya bisa bekerja sendiri. Jadi, jika Anda ingin menambahkan ke cabang orang lain, Anda perlu membuat "salinan" sendiri dari cabang itu, yang adalah apa yang dilakukan perintah di atas (well, itu membuat cabang Anda dan memeriksanya juga).
Dan Moulding
139
Jika itu adalah cabang jarak jauh yang baru, Anda mungkin perlu git fetchmelakukannya sebelum ini agar git mengetahuiorigin/test
Neil Sarkar
56
... dan Anda akan melakukan ini dengangit fetch origin test
Andrew
22
Kesalahan: "git checkout: jalur pembaruan tidak kompatibel dengan beralih cabang. Apakah Anda bermaksud untuk checkout origin/testyang tidak dapat diselesaikan sebagai komit?"
Xeoncross
85
git checkout testTIDAK akan bekerja di git modern jika Anda memiliki beberapa remote yang memiliki nama cabang yang sama . Tidak tahu yang mana yang harus digunakan.
masukomi
1256

Sidenote: Dengan Git modern (> = 1.6.6 ), Anda dapat menggunakannya secara adil

git checkout test

(perhatikan bahwa ini adalah 'uji' bukan 'asal / uji') untuk melakukan DWIM magis -mengerjakan dan membuat 'tes' cabang lokal untuk Anda, yang cabang upstreamnya akan menjadi cabang pelacakan 'asal / uji'.


The * (no branch)di git branchberarti output yang Anda berada di cabang yang tidak disebutkan namanya, dalam apa yang disebut "KEPALA terpisah" negara (poin KEPALA langsung untuk melakukan, dan bukan merupakan referensi simbolis untuk beberapa cabang lokal). Jika Anda membuat beberapa komitmen pada cabang yang tidak disebutkan namanya ini, Anda selalu dapat membuat cabang lokal dari komit saat ini:

git checkout -b test HEAD

** EDIT (oleh editor bukan penulis) **

Saya menemukan komentar yang terkubur di bawah ini yang sepertinya memodernisasi jawaban ini:

@Dennis: git checkout, misalnya asal git checkout / hasil tes di KEPALA terlepas / cabang tidak bernama, sedangkan git checkout atau git checkout ) - Jakub Narębski 9 Jan 14 at 8:17

penekanan pada git checkout origin/test

Jakub Narębski
sumber
33
Tidak mengejutkan, tetapi versi ini telah dirilis dalam beberapa tahun terakhir - mengetahui sintaks ini dapat menghemat banyak waktu karena masih ada banyak dokumentasi lama dan utas komentar yang beredar yang menyarankan metode lama untuk melakukan ini.
Curtis
10
"modern git" - sebagai catatan, (kira-kira) versi apa yang Anda maksud? Terkadang kita harus bekerja pada sistem yang menjalankan distro lama.
Craig McQueen
5
"git modern" dalam konteks ini adalah git 1.6.6
Bobby Norton
10
@aidan Jika Anda mendapat respons seperti error: pathspec 'branch_name' did not match any file(s) known to git.maka Anda harus melakukan git fetch terlebih dahulu.
Dennis
6
Menggunakan git versi 1.8.3.msysgit.0 dan ini tidak berfungsi untuk saya - tidak cocok dengan file apa pun yang dikenal git - Saya telah melakukan banyak
pengambilan
565

Dalam hal ini, Anda mungkin ingin membuat testcabang lokal yang melacak testcabang jarak jauh :

$ git branch test origin/test

Dalam versi sebelumnya git, Anda memerlukan --trackopsi eksplisit , tetapi itu adalah default sekarang saat Anda bercabang dari cabang jarak jauh.

ndim
sumber
15
Ini akan membuat cabang lokal tanpa beralih ke sana.
Alex Skrypnyk
2
Meskipun saya mendapat fatal: Nama objek ambigu: 'asal / dev' - di mana cabang 'dev' pada asal pasti ada - tapi saya tidak sengaja membuat cabang yang disebut "asal / dev" di mesin saya (dalam upaya bodoh saya sebelumnya untuk memperbaikinya, tidak diragukan lagi) ... aduh
PandaWood
1
Ini telah memberi saya kesalahan kesalahan: gagal mendorong beberapa referensi untuk memberi petunjuk: Pembaruan ditolak karena ujung cabang yang didorong ada di belakang petunjuk jarak jauh: rekan. Periksa cabang ini dan gabungkan petunjuk perubahan jarak jauh: (misalnya 'git pull') sebelum mendorong lagi. petunjuk: Lihat 'Catatan tentang maju cepat' di 'git push --help' untuk detailnya.
pal4life
475

Jawaban yang diterima tidak bekerja untuk Anda?

Sementara jawaban pertama dan yang dipilih secara teknis benar , ada kemungkinan Anda belum mengambil semua objek dan referensi dari repositori jarak jauh. Jika demikian, Anda akan menerima kesalahan berikut:

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: jalur pembaruan tidak kompatibel dengan beralih cabang.
Apakah Anda bermaksud untuk checkout 'origin / remote_branch' yang tidak dapat diselesaikan sebagai komit?

Larutan

Jika Anda menerima pesan ini, Anda harus terlebih dahulu melakukan di git fetch originmana originnama repositori jarak jauh sebelum menjalankan git checkout remote_branch. Inilah contoh lengkap dengan tanggapan:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

Seperti yang Anda lihat, menjalankan git fetch originmengambil cabang-cabang jarak jauh yang belum kami siapkan untuk melacaknya di mesin lokal kami. Dari sana, karena kita sekarang memiliki referensi ke cabang jarak jauh, kita bisa berlari git checkout remote_branchdan kita akan mendapat manfaat dari pelacakan jarak jauh.

Corey Ballou
sumber
2
Saya akan menambahkan catatan jika Anda memiliki cabang terpisah secara lokal: Pastikan Anda telah mengaitkan ini dengan repo jarak jauh menggunakan 'git remote add origin [the_path_to_your_repo / repo_name.git]'. Kemudian gunakan 'git fetch origin' di mana 'origin' berarti repositori asal yang telah Anda buat asosiasinya.
elliotrock
git checkout -b newbranchjuga berfungsi baik untuk membuat 1 langkah dan checkout cabang baru berdasarkan cabang saat ini.
Linus
2
Saya pikir ini adalah yang terbaru (ini membuat $ @ #! Ing berubah!). Git 2.5.5 Saya menemukan satu-satunya cara untuk benar-benar melihat cabang jarak jauh adalah git ls-remotedan satu-satunya cara untuk benar-benar menggunakannya adalah git checkout -b [branch] --track [remote/branch]... dan setelah itu git pull [remote] [branch] berhasil. Yaitu, itu benar-benar menarik seluruh cabang, tetapi masih tidak akan mencantumkannya.
delicateLatticeworkFever
dan ketika jawaban ini juga tidak berhasil, lihat yang ini .
eis
hanya untuk menambahkan, jika Anda git fetch other_remote only_branch, Anda masih mendapatkan fatalkesalahan. Anda harus git fetch other_remotetanpa nama cabang. Desain yang aneh.
est
258

Saya mencoba solusi di atas, tetapi tidak berhasil. Coba ini, ini berhasil:

git fetch origin 'remote_branch':'local_branch_name'

Ini akan mengambil cabang jarak jauh dan membuat cabang lokal baru (jika belum ada) dengan nama local_branch_namedan melacak cabang jarak jauh di dalamnya.

Sahil kalra
sumber
37
Ini bekerja untuk saya ketika git tidak mengambil asal atau pembaruan remote git membuat cabang lokal. Saya tidak yakin mengapa.
Godsmith
4
Ini adalah cara paling langsung untuk mencapai apa yang saya butuhkan yaitu menggunakan cabang jarak jauh (bukan master) untuk membuat cabang baru.
Roralee
7
Bekerja dengan lancar, terutama ketika telah mengkloning satu cabang dari remote dengan banyak cabang.
Alex C
7
ini bekerja untuk saya juga, di mana jawaban yang diterima dan pemilih suara lainnya tidak. Versi git saya adalah 2.5.0
pdepmcp
5
Adakah yang tahu mengapa ini bekerja padahal yang lainnya tidak? (I'm on git 2.13.0)
Nathan Arthur
108

Ini akan DWIM untuk remote tidak bernama asal ( dokumentasi ):

$ git checkout -t remote_name/remote_branch

Untuk menambahkan remote baru, Anda harus melakukan hal berikut terlebih dahulu:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

Yang pertama memberitahu Git bahwa remote itu ada, yang kedua mendapat komit.

tacaswell
sumber
104

Menggunakan:

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

Jawaban lain tidak bekerja dengan Git modern dalam kasus jinak saya. Anda mungkin perlu menarik dulu jika cabang jarak jauh baru, tapi saya belum memeriksa kasing itu.

matanster
sumber
2
Apakah Anda menyadari bahwa ini adalah kutipan dari jawaban
Thomas Ayoub
14
Melihat itu sekarang, mereka tumpang tindih. Hanya milik saya yang ringkas dan memberi tahu Anda apa yang harus dilakukan daripada menceritakan sebuah cerita. Saya menganggap itu bisa lebih bermanfaat karena itu, terutama untuk versi git saat ini. Anda dapat menghapusnya jika Anda pikir itu adalah jawaban yang buruk.
matanster
1
git fetch adalah opsi yang aman. Coba ambil sebelum menggunakan tarikan. Keduanya mengunduh konten jarak jauh, tetapi meskipun pengambilan tidak mengubah status lokal, tarik akan segera mengubah status lokal.
Peter Szalay
89

baik , jawabannya mudah ... Pada dasarnya Anda melihat cabang, tetapi Anda belum memiliki salinan lokal! ...

Anda perlu ke fetchcabang ...

Anda cukup mengambil dan kemudian checkout ke cabang, gunakan perintah satu baris di bawah ini untuk melakukannya:

git fetch && git checkout test

Saya juga membuat gambar di bawah ini untuk Anda bagikan perbedaannya, lihat cara fetchkerjanya dan juga bagaimana perbedaannya dengan pull:

git fetch

Alireza
sumber
@ DmitriZaitsev ya, itu akan berhasil, jika cabang jarak jauh ada, dan Anda mengambilnya, Anda akan mendapatkan cabang secara lokal ... git fetch && git checkout test..Jadi ini berfungsi, kecuali tidak ada cabang jarak jauh, tetapi pertanyaan mengatakan sudah ada cabang terpencil di sana ...
Alireza
Cara saya melihat pertanyaan, testterlihat seperti cabang baru, sehingga tidak mungkin hadir secara lokal. Kalau tidak, Anda bisa menariknya lebih mudah dengan satu git pullperintah.
Dmitri Zaitsev
@DmitriZaitsev, ya, itu sebabnya saya berkata git fetch, yang memeriksa cabang jauh yang baru saja dibuat, pull dapat membawa barang-barang yang tidak diinginkan, tetapi mengambil membuat semua cabang tersedia jika Anda sudah memiliki repo lokal ...
Alireza
Bukankah fetchtanpa pullmeninggalkan perubahan pada salinan yang diambil tetapi tidak di cabang lokal, menyebabkan cabang lokal Anda tidak mutakhir?
Dmitri Zaitsev
56

Untuk mengkloning repositori Git, lakukan:

git clone <either ssh url /http url>

Perintah di atas memeriksa semua cabang, tetapi hanya mastercabang yang akan diinisialisasi. Jika Anda ingin checkout cabang lain, lakukan:

git checkout -t origin/future_branch (for example)

Perintah ini memeriksa cabang jarak jauh, dan nama cabang lokal Anda akan sama dengan cabang jarak jauh.

Jika Anda ingin mengganti nama cabang lokal Anda saat checkout:

git checkout -t -b enhancement origin/future_branch

Sekarang nama cabang lokal Anda enhancement, tetapi nama cabang jarak jauh Anda future_branch.

Dokumentasi

Madhan Ayyasamy
sumber
git clone <salah ssh url / http url> - berfungsi dengan baik untuk saya
Kmeixner
Ya kamu benar. Terima kasih atas informasi Anda, saya akan segera memperbaruinya @warvariuc
Madhan Ayyasamy
Jika remote tidak ada master, ini tidak akan berfungsi.
polkovnikov.ph
36

Anda dapat mencoba

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

atau

git fetch
git checkout -b local_branch_name origin/branch_name
uma
sumber
2
FYI, --tracktidak lagi diperlukan di versi git yang lebih baru, karena diset secara default, seperti yang dijelaskan dalam jawaban sebelumnya .
33

Pertama, yang perlu Anda lakukan:

git fetch # Jika Anda tidak tahu tentang nama cabang

git fetch origin branch_name

Kedua, Anda dapat memeriksa cabang jarak jauh ke lokal Anda dengan:

git checkout -b branch_name origin/branch_name

-b akan membuat cabang baru dengan nama yang ditentukan dari cabang jarak jauh yang Anda pilih.

Mohideen bin Mohammed
sumber
Saya tidak mengerti -b. Jika Anda dapat melakukan "git checkout master" mengapa Anda tidak dapat melakukan "git checkout origin / test"?
John Little
-b untuk cabang baru yang berasal dari asal / master
Mohideen bin Mohammed
28

Saya menggunakan perintah berikut:

git checkout --track origin/other_remote_branch
priyankvex
sumber
13
Jawaban ini akan jauh lebih berguna jika Anda menjelaskan mengapa Anda menggunakannya dengan cara ini. yaitu mengapa seseorang harus menggunakan '--track' dan seterusnya ...
Matt Friedman
27

Perintah

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

sama dengan

 git fetch --all

lalu

 git checkout -b fixes_for_dev origin/development

Keduanya akan membuat latest fixes_for_devdaridevelopment

sreekumar
sumber
24

Jika cabang ada pada sesuatu selain originremote saya suka melakukan hal berikut:

$ git fetch
$ git checkout -b second/next upstream/next

Ini akan mengecek nextcabang pada upstreamremote ke cabang lokal yang disebut second/next. Yang berarti jika Anda sudah memiliki cabang lokal yang bernama berikutnya itu tidak akan konflik.

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next
Keris
sumber
19

git fetch && git checkout your-branch-name

Inder Kumar Rathore
sumber
18

tidak satu pun dari jawaban ini bekerja untuk saya. ini berhasil:

git checkout -b feature/branch remotes/origin/feature/branch

Brianyang
sumber
1
Terima kasih. Saya bertanya-tanya apakah saya harus menggunakan path lengkap ( remote / asal / fitur / cabang ) yang saya lihat gitketika memanggil git branch -aperintah, tapi saya tidak yakin, jadi saya hanya menggunakan git checkout -b apps/FEATURE/branch origin/apps/FEATURE/branchdan tampaknya berfungsi. Pesan:Branch 'apps/FEATURE/branch' set up to track remote branch 'apps/FEATURE/epicBranch' from 'origin'. Switched to a new branch 'apps/FEATURE/branch'
Chris22
18

Saya terjebak dalam situasi melihat error: pathspec 'desired-branch' did not match any file(s) known to git.semua saran di atas. Saya di git versi 1.8.3.1.

Jadi ini berhasil bagi saya :

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

Penjelasan di belakang adalah bahwa saya perhatikan bahwa ketika mengambil cabang jarak jauh, ia diambil ke FETCH_HEAD:

$ git fetch origin desired-branch
From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD
alisa
sumber
17

Cukup jalankan git checkoutdengan nama cabang jarak jauh. Git akan secara otomatis membuat cabang lokal yang melacak yang jauh:

git fetch
git checkout test

Namun, jika nama cabang itu ditemukan di lebih dari satu remote, ini tidak akan berfungsi karena Git tidak tahu mana yang harus digunakan. Dalam hal ini Anda dapat menggunakan:

git checkout --track origin/test

atau

git checkout -b test origin/test

Pada 2.19 , Git mempelajari checkout.defaultRemotekonfigurasi, yang menentukan remote ke default ketika menyelesaikan ambiguitas tersebut.

Eugene Yarmash
sumber
16

git branch -rmengatakan nama objek tidak valid, karena nama cabang itu tidak ada dalam daftar cabang lokal Git. Perbarui daftar cabang lokal Anda dari asal dengan:

git remote update

Dan kemudian coba periksa kembali cabang jarak jauh Anda.

Ini berhasil untuk saya.

Saya percaya git fetchmenarik semua cabang terpencil, yang bukan apa yang diinginkan poster asli.

webdevguy
sumber
2
FYI, git remote update juga akan mengambil semua cabang jarak jauh .
13

The git remote show <origin name>perintah akan daftar semua cabang (termasuk un-dilacak cabang). Kemudian Anda dapat menemukan nama cabang jarak jauh yang perlu Anda ambil.

Contoh:

$ git remote show origin

Gunakan langkah-langkah ini untuk mengambil cabang jarak jauh:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

Contoh:

$ git fetch origin test:test
$ git checkout test
Thushan
sumber
@hallski menjawab tidak bekerja versi 2.15.1 tetapi saya telah mengurangi .git hanya mengkloning 1 cabang dan menyaring histori dengan flag --depth. misalnya $ git clone -b release --single-branch --depth 5 https://github.com/user/repo.gitinformasi Wron't $ git remote show originini tidak mencantumkan semua cabang jarak jauh dengan repositori cabang tunggal kloning.
Qh0stM4N
10

Ambil dari remote dan checkout cabang.

git fetch <remote_name> && git checkout <branch_name> 

Misalnya:

git fetch asal && fitur checkout git / XYZ-1234-Add-alerts

Pranav
sumber
9

Cowok dan cewek lain memberikan solusinya, tapi mungkin aku bisa memberitahumu alasannya.

git checkout test yang tidak melakukan apa-apa

Does nothing tidak sama doesn't work , jadi saya kira ketika Anda mengetik 'git checkout test' di terminal Anda dan tekan tombol enter, tidak ada pesan muncul dan tidak ada kesalahan terjadi. Apakah saya benar?

Jika jawabannya 'ya', saya bisa memberi tahu Anda penyebabnya.

Penyebabnya adalah bahwa ada file (atau folder) bernama 'test' di pohon pekerjaan Anda.

Ketika git checkout xxxdiuraikan,

  1. Git terlihat xxxsebagai nama cabang pada awalnya, tetapi tidak ada uji nama cabang.
  2. Kemudian Git berpikir xxxadalah jalan, dan untungnya (atau sayangnya), ada file bernama test. Jadi git checkout xxxartinya buang segala modifikasi dalam xxxfile.
  3. Jika tidak ada file yang bernama xxxbaik, maka Git akan mencoba untuk membuat xxxsesuai dengan beberapa aturan. Salah satu aturan adalah membuat cabang bernama xxxjika remotes/origin/xxxada.
pria tua
sumber
terima kasih, terus berusaha mencari tahu mengapa git tidak melakukan apa-apa.
Mike R
8

Untuk mendapatkan cabang yang baru dibuat

git fetch

Untuk beralih ke cabang lain

git checkout BranchName
Hasib Kamal
sumber
6

Anda dapat mulai melacak semua cabang jarak jauh dengan skrip Bash berikut:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

Ini juga versi single-line:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;
OzzyCzech
sumber
5

git checkout -b "Branch_name" [B berarti Buat cabang lokal]

cabang git --semua

git checkout -b "Nama Cabang Anda"

cabang git

berhasil checkout dari cabang utama ke cabang dev

masukkan deskripsi gambar di sini

Keshav Gera
sumber
git checkout -b "Branch_name" [B berarti Buat cabang lokal]
Keshav Gera
3

untuk mendapatkan semua cabang jarak jauh gunakan ini:

git fetch --all

lalu checkout ke cabang:

git checkout test
zahra
sumber
2

Gunakan fetchuntuk menarik semua remote Anda

   git fetch --all

Untuk membuat daftar cabang jarak jauh:

   git branch -r

Untuk daftar semua cabang Anda

   git branch -l
   >>outpots like-
     * develop
       test
       master

Untuk checkout / mengganti cabang

   git checkout master
Nasir Khan
sumber
Sudah mencoba git branch -ldan tidak ada cabang yang jauh ditampilkan.
Dmitri Zaitsev
gunakan git pull --allataugit fetch --all
Nasir Khan
Ya, dan setelah itu, git branch -l masih menunjukkan hanya cabang lokal . Tampaknya berfungsi persis seperti git branchtanpa -l, jadi apa alasannya -l?
Dmitri Zaitsev
Juga jawaban Anda tidak menjawab pertanyaan - masterbukan cabang jarak jauh.
Dmitri Zaitsev
1
-lpanji untuk daftar. Anda dapat menggunakan --listjuga
Nasir Khan
2

Bagi kami, sepertinya remote.origin.fetchkonfigurasi memberi masalah. Karena itu, kami tidak dapat melihat cabang jarak jauh selain master, jadi git fetch [--all]tidak membantu. Tidak git checkout mybranchjuga git checkout -b mybranch --track origin/mybranchtidak berhasil, meskipun tentu saja di remote.

Konfigurasi sebelumnya hanya boleh masterdiambil:

$ git config --list | grep fetch
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

Perbaiki dengan menggunakan *dan mengambil informasi baru dari asal:

$ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

$ git fetch
...
 * [new branch] ...
...

Sekarang kita dapat git checkoutcabang jarak jauh secara lokal.

Tidak tahu bagaimana konfigurasi ini berakhir di repo lokal kami.

hzpc-joostk
sumber
1
Ini menyelesaikannya untuk saya sejak saya mengkloning satu cabang
Pontus Holmbom
2

Jika nama cabang jarak jauh dimulai dengan karakter khusus, Anda perlu menggunakan tanda kutip tunggal di sekitarnya dalam perintah checkout, atau git tidak akan tahu cabang mana yang sedang Anda bicarakan.

Sebagai contoh, saya mencoba untuk checkout cabang jauh bernama #9773tetapi perintah tidak berfungsi dengan benar, seperti yang ditunjukkan pada gambar di bawah ini:

masukkan deskripsi gambar di sini

Untuk beberapa alasan saya bertanya-tanya apakah simbol tajam (#) bisa ada hubungannya dengan itu, dan kemudian saya mencoba mengelilingi nama cabang dengan tanda kutip tunggal, seperti '#9773'rathen dari sekadar #9773, dan untungnya itu bekerja dengan baik.

$ git checkout -b '#9773' origin/'#9773'
Ulysses Alves
sumber
Dalam banyak shell unix #karakter digunakan untuk komentar sehingga apa pun setelah #akan diabaikan. Ini adalah hal shell dan bukan sesuatu yang spesifik untuk git. Menggunakan tanda kutip backslash sebelum #harus cukup.
Paulo Scardine
1

Ikuti perintah untuk membuat folder kosong. Masukkan itu dan gunakan perintah ini:

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'
Mehedi Hasan
sumber