The central
repositori harus mengatur pada server baru, jadi saya membuat remote baru pada repo lokal saya, dan mendorong itu.
Tetapi sekarang ketika saya melakukannya git pull
, itu mengklaim saya up to date. Itu salah — ini memberitahuku tentang cabang terpencil yang lama , bukan yang baru, yang aku tahu pasti punya komitmen baru untuk diambil.
Bagaimana cara mengubah cabang lokal saya untuk melacak remote yang berbeda?
Saya dapat melihat ini di file konfigurasi git tetapi saya tidak ingin mengacaukan semuanya.
[branch "master"]
remote = oldserver
merge = refs/heads/master
Jawaban:
Menggunakan git v1.8.0 atau yang lebih baru:
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
Atau Anda dapat menggunakan
-u
sakelar:git branch branch_name
-u
your_new_remote/branch_name
Menggunakan git v1.7.12 atau yang lebih lama:
git branch --set-upstream branch_name your_new_remote/branch_name
sumber
git branch --unset-upstream
- kemudian berfungsi seperti yang diberikan dalam jawaban ini (atau dengan yang berikutnyagit push -u / --set-upstream
).Bagi saya perbaikannya adalah:
Kemudian:
sumber
set-url
dan lupa untuk mengaturnya kembali, makagit push
perintah di masa depan akan gagalDengan git terbaru (2.5.5) , perintahnya adalah sebagai berikut:
Ini akan memperbarui cabang yang dilacak jarak jauh untuk cabang lokal Anda saat ini
sumber
git branch --set-upstream-to=origin/develop
mengangkat kesalahan:error: the requested upstream branch 'origin/develop' does not exist
. Sebelumnya, saya mengganti nama cabang jauh menjadi delelop.git fetch --all
mungkin?Opsi lain untuk memiliki banyak kendali atas apa yang terjadi adalah mengedit konfigurasi Anda dengan tangan:
atau steno
Kemudian edit file sesuka hati, simpan dan modifikasi Anda akan diterapkan.
sumber
Jika Anda waras, mengedit file konfigurasi cukup aman. Jika Anda ingin menjadi lebih paranoid, Anda dapat menggunakan perintah porselen untuk memodifikasinya:
Tentu saja, jika Anda melihat konfigurasi sebelum dan sesudah, Anda akan melihat bahwa ia melakukan persis apa yang akan Anda lakukan.
Tetapi dalam kasus pribadi Anda, apa yang akan saya lakukan adalah:
Artinya, jika server baru akan menjadi remote kanonik, mengapa tidak menyebutnya asal seolah-olah Anda awalnya dikloning dari itu?
sumber
remote rename
tidak akan melakukan apa yang diminta karena ia mengubah nama remote baik di[remote]
konfigurasi maupun di[branch]
konfigurasi. Jadi apa yang perlu dilakukan dalam hal ini adalah mengedit file konfigurasi dan melakukan apa yang Anda katakan (mengubah nama remote) hanya di[remote]
baris konfigurasi.atau
sumber
git fetch
. Saya telah membuat cabang baru di bitbucket dan ingin beralih ke itu. git tidak tahu tentang perubahan jarak jauh jadi saya harus lakukangit fetch
sebelumnyagit checkout feature/new-feature-branch
. Semoga ini bisa membantu orang lain.Ini adalah perintah termudah:
Misalnya, diberi perintah
git remote -v
menghasilkan sesuatu seperti:Untuk mengubah pelacakan tim:
sumber
Anda dapat menghapus cabang saat ini dan melakukan:
Atau ubah perubahan server jarak jauh ke server saat ini di konfigurasi
sumber
git checkout --track -b local_branch_name origin/branch_name
Berdasarkan apa yang saya pahami dari dokumentasi git terbaru , sinopsisnya adalah:
Penggunaan ini tampaknya sedikit berbeda dari jawaban urschrei, seperti dalam sinopsisnya adalah:
Saya kira mereka mengubah dokumentasi lagi?
sumber
Dalam versi git terbaru seperti 2.7.4 ,
git checkout branch_name
# cabang nama yang ingin Anda ubah cabang pelacakangit branch --set-upstream-to=upstream/tracking_branch_name
#upstream - nama jarak jauhsumber
Saya menemukan postingan @critikaster bermanfaat, kecuali saya harus melakukan perintah ini dengan GIT 2.21:
sumber
cara termudah adalah dengan hanya mendorong ke cabang baru:
sumber