Tidak ada informasi pelacakan untuk cabang saat ini

581

Saya telah menggunakan github dari periode yang relatif singkat, dan saya selalu menggunakan klien untuk melakukan komit dan menarik. Saya memutuskan untuk mencobanya dari git bash kemarin, dan saya berhasil membuat repo baru dan file berkomitmen.

Hari ini saya melakukan perubahan pada repositori dari komputer lain, saya telah melakukan perubahan dan sekarang saya kembali ke rumah dan melakukan git pulluntuk memperbarui versi lokal saya dan saya mendapatkan ini:

There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream develop origin/<branch>

satu-satunya penyumbang repo ini adalah saya dan tidak ada cabang (hanya master). Saya di windows dan saya telah melakukan tarikan dari git bash:

masukkan deskripsi gambar di sini

status git:

$ git status
# On branch master
nothing to commit, working directory clean

cabang git:

$ git branch
* master

Apa yang saya lakukan salah?

valerio0999
sumber
Oke, bagaimana dengan git remote -v? Apa katanya?
criswell
Kemungkinan duplikat dari git checkout tag, git pull gagal di cabang
rjmunro
Anda juga bisa mendapatkan kesalahan itu jika Anda belum cd ke direktori repo kloning, ketika mengeksekusi git pull.
Victoria Stuart
Dengan Git 2.24, Q4 2019, git pull --set-upstream-to=origin/master masterdimungkinkan. Lihat jawaban saya di bawah ini
VonC

Jawaban:

951

Anda bisa menentukan cabang apa yang ingin Anda tarik:

git pull origin master

Atau Anda bisa mengaturnya sehingga cabang master lokal Anda melacak cabang master github sebagai upstream:

git branch --set-upstream-to=origin/master master
git pull

Pelacakan cabang ini diatur untuk Anda secara otomatis ketika Anda mengkloning repositori (hanya untuk cabang default), tetapi jika Anda menambahkan remote ke repositori yang ada, Anda harus mengatur sendiri pelacakannya. Untungnya, saran yang diberikan oleh git membuatnya mudah diingat bagaimana melakukannya.

ComputerDruid
sumber
3
sempurna! itu berhasil. jadi apa yang terjadi adalah tidak ada "cabang default" untuk "git pull" default? itu sebabnya ada kesalahan?
valerio0999
16
--set-upstream tidak digunakan lagi di git 1.9.x, tampaknya. Ke depan Anda ingin menggunakan sesuatu seperti git branch -u origin/master, dengan asumsi Anda sudah memeriksa master. Jika tidak, git branch -u origin/master masterakan berhasil.
Bart Baca
5
@BartRead memperbaruinya untuk menggunakan --set-upstream-to=sintaks yang lebih jelas . (yang merupakan pengganti untuk --set-upstream)
ComputerDruid
61
ini seperti keadaan yang menyedihkan - apakah kita benar-benar perlu mengatur ini secara manual untuk setiap cabang? Mengapa kita tidak bisa hanya mengatur asal sebagai remote default dan kemudian memiliki setiap push / pull default ke cabang asal dengan nama yang sama? Apakah ini sangat sulit?
Alexander Mills
4
Ah, bagian kuncinya bagi saya di sini adalah bahwa jika Anda menjatuhkan dan membuat ulang remote maka pelacakan yang dibuat oleh aslinya fetchtelah hilang. Oleh karena itu perlu mengaturnya lagi. :)
Ben
42

Lihat: tag checkout git, pull git gagal di cabang

Jika seperti saya Anda harus melakukan ini sepanjang waktu, Anda dapat mengatur alias untuk melakukannya secara otomatis dengan menambahkan berikut ini ke .gitconfigfile Anda :

[alias]
    set-upstream = \
       !git branch \
           --set-upstream-to=origin/`git symbolic-ref --short HEAD`

Saat Anda melihat pesan There is no tracking information..., jalankan:

 git set-upstream
 git push

Terima kasih kepada https://zarino.co.uk/post/git-set-upstream/

rjmunro
sumber
1
Berikut ini cara untuk menambahkannya ke global .gitconfigdalam satu baris (dapat dimodifikasi untuk konfigurasi lokal atau lainnya):git config --global alias.set-upstream '!git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)'
Danny Bullis
17

Jawaban ComputerDruid sangat bagus, tetapi saya rasa itu tidak perlu diatur secara manual kecuali Anda mau. Saya menambahkan jawaban ini karena orang mungkin berpikir itu adalah langkah yang perlu.

Kesalahan ini akan hilang jika Anda menentukan jarak jauh yang ingin Anda tarik seperti di bawah ini:

git pull origin master

Perhatikan bahwa itu originadalah nama remote dan masternama cabang.


1) Cara memeriksa nama jarak jauh

git remote -v

2) Cara melihat cabang apa yang tersedia di repositori.

git branch -r
Aerin
sumber
1
Jawaban terbaik untuk saya, Terima kasih!
Bahman.
7

Saya sering menemukan pesan yang tepat ini karena saya membuat cabang lokal melalui git checkout -b <feature-branch-name>tanpa terlebih dahulu membuat cabang jarak jauh.

Setelah semua pekerjaan selesai dan dilakukan secara lokal, perbaikannya adalah git push -uyang menciptakan cabang jarak jauh, mendorong semua pekerjaan saya, dan kemudian menggabungkan URL permintaan.

Ron Reynolds
sumber
1
untuk apa nilainya, saya harus berlari git push -u origin <my-feature-branch-name>untuk membuat cabang terpencil dan mendorong pekerjaan saya
Donnie C
6

Saya mencoba contoh di atas dan tidak bisa menyinkronkannya dengan cabang (non-master) yang saya buat di komputer lain. Untuk latar belakang, saya membuat repositori ini di komputer A (git v 1.8) dan kemudian mengkloning repositori ke komputer B (git 2.14). Saya membuat semua perubahan pada comp B, tetapi ketika saya mencoba menarik perubahan ke komputer AI tidak dapat melakukannya, mendapatkan kesalahan di atas sama. Mirip dengan solusi di atas, saya harus melakukan:

git branch --set-upstream-to=origin/<my_repository_name> 
git pull

sedikit berbeda tapi semoga membantu seseorang

imapotatoe123
sumber
Ini bekerja untuk saya; Saya juga menggunakan cabang non-master yang telah diatur pada komputer yang berbeda. Dengan menggunakan perintah ini di Git Bash saya kemudian bisa mendapatkan perubahan saya :)
Novastorm
3

1) cabang git --set-upstream-to = asal / <master_branch>fitur /<your_current_branch>

2) git pull

MERLIN THOMAS
sumber
1

$ git branch --set-upstream-to=heroku/master master dan

$ git pull

bekerja untukku!

Semoga Dias
sumber
1

Hal yang sama terjadi pada saya sebelumnya ketika saya membuat cabang git baru tanpa mendorongnya ke asalnya.

Cobalah untuk mengeksekusi kedua baris itu terlebih dahulu:

git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github

Kemudian:

git pull origin name_of_new_branch

Seharusnya sekarang baik-baik saja!

Kadal air
sumber
1

Ini terjadi karena cabang saat ini tidak memiliki pelacakan pada cabang di remote. jadi kamu bisa melakukannya dengan 2 cara.

  1. Tarik dengan nama cabang tertentu

git tarik master asal

  1. Atau Anda dapat cabang tertentu untuk melacak ke cabang lokal.

cabang git --set-upstream-to = asal /

KR93
sumber
0

cabang git --set-upstream-to = asal / utama

Amir Hussain
sumber
2
Selalu membantu menambahkan beberapa penjelasan pada jawaban Anda, untuk membuatnya lebih jelas dan mudah dimengerti. Harap baca stackoverflow.com/help/how-to-answer .
32cupo
1
Selain poin @ 32cupo, ini pada dasarnya sama dengan jawaban yang diterima lima tahun, tetapi dengan sedikit penjelasan.
Jeremy Caney