Ketika saya lakukan git fetch origin
dan asal memiliki cabang dihapus, sepertinya tidak memperbaruinya di repositori saya. Ketika saya melakukannya git branch -r
masih menunjukkanorigin/DELETED_BRANCH
.
Bagaimana saya bisa memperbaikinya?
Ketika saya lakukan git fetch origin
dan asal memiliki cabang dihapus, sepertinya tidak memperbaruinya di repositori saya. Ketika saya melakukannya git branch -r
masih menunjukkanorigin/DELETED_BRANCH
.
Bagaimana saya bisa memperbaikinya?
Jawaban:
Anda perlu melakukan hal berikut
git fetch -p
Ini akan memperbarui basis data lokal cabang-cabang terpencil.
origin
garpu saya : git fetch -p origin
Ketika saya kemudian melakukan git branch -r
cabang jarak jauh yang tidak ada tidak lagi muncul.
git remote prune origin
dan mirip dengan yang git pull --prune
disebutkan di stackoverflow.com/a/6127884/94687 dan stackoverflow.com/a/17983126/94687 .
[deleted] (none) -> origin/ < branch name >
dan cabang masih ditampilkan di repo lokal tahu mengapa?
git branch
masih menunjukkan cabang yang seharusnya dihapus.
Dari http://www.gitguys.com/topics/adding-and-removing-remote-branches/
Setelah seseorang menghapus cabang dari repositori jarak jauh, git tidak akan secara otomatis menghapus cabang repositori lokal ketika pengguna melakukan git pull atau git fetch. Namun, jika pengguna ingin semua cabang pelacakan dihapus dari repositori lokal mereka yang telah dihapus dalam repositori jarak jauh, mereka dapat mengetik:
git asal prune jarak jauh
Sebagai catatan, -p param dari git fetch -p
sebenarnya berarti "prune".
Apa pun pilihan Anda, cabang jarak jauh yang tidak ada akan dihapus dari repositori lokal Anda.
Anda perlu melakukan hal berikut
git fetch -p
untuk menyinkronkan daftar cabang Anda. The pengguna git mengatakan
-p
,--prune
Setelah mengambil, hapus referensi pelacakan jarak jauh yang tidak lagi ada di remote. Tag tidak dapat dipangkas jika diambil hanya karena tag otomatis mengikuti atau karena suatu--tags
opsi. Namun, jika tag diambil karena refspec eksplisit (baik pada baris perintah atau dalam konfigurasi jarak jauh, misalnya jika remote dikloning dengan--mirror
opsi), maka tag tersebut juga harus dipangkas.
Saya pribadi suka menggunakan git fetch origin -p --progress
karena ini menunjukkan indikator kemajuan.
Mengenai git fetch -p
, perilakunya berubah di Git 1.9, dan hanya Git 2.9.x / 2.10 yang mencerminkan hal itu.
Lihat komit 9e70233 (13 Jun 2016) oleh Jeff King ( peff
) .
(Digabung oleh Junio C Hamano - gitster
- dalam komit 1c22105 , 06 Jul 2016)
fetch
: dokumen pemangkasan yang terjadi sebelumnya mengambilIni diubah dalam 10a6cc8 (
fetch --prune
: Jalankan prune sebelum mengambil, 2014-01-02), tetapi tampaknya tidak ada orang dalam diskusi yang menyadari bahwa kami mengiklankan "setelah" secara eksplisit.
Jadi dokumentasi sekarang menyatakan:
Sebelum mengambil, hapus referensi pelacakan jarak jauh yang tidak lagi ada di remote
Itu karena:
Ketika kami memiliki cabang pelacak jarak jauh bernama "
frotz/nitfol
" dari pengambilan sebelumnya, dan hulu sekarang memiliki cabang bernama "frotz
", mengambil akan gagal menghapus "frotz/nitfol
" dengan "git fetch --prune
" dari upstream. git akan memberitahu pengguna untuk menggunakan "git remote prune
" masalah ini.Ubah cara
fetch --prune
kerjanya " " dengan memindahkan operasi pemangkasan sebelum operasi pengambilan. Dengan cara ini, alih-alih memperingatkan pengguna konflik, secara otomatis memperbaikinya.