Saya telah membuat repositori git untuk mencerminkan situs langsung (yang merupakan repositori non-telanjang):
git clone --mirror ssh://[email protected]/path/to/repo
Sekarang, untuk menjaga agar klon cermin ini diperbarui dengan semua perubahan dari asalnya yang jauh, perintah atau perintah mana yang harus saya gunakan?
Saya ingin menjaga semuanya diperbarui: melakukan, ref, kait, cabang, dll.
Terima kasih!
git fetch
? Ataugit remote update
sendirian akan melakukan semuanya?Mengenai komit, ref, cabang dan " et cetera ", jawaban Magnus hanya berfungsi (
git remote update
).Tapi sayangnya tidak ada cara untuk
clone
/ mirror /update
kait , seperti yang saya inginkan ...Saya telah menemukan utas yang sangat menarik tentang kloning / mirroring the hooks:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
Aku telah belajar:
Kait tidak dianggap sebagai bagian dari konten repositori.
Ada lebih banyak data, seperti
.git/description
folder, yang tidak mendapatkan kloning, seperti halnya kait.Kait default yang muncul di
hooks
dir berasal dariTEMPLATE_DIR
Ada
template
fitur menarik di git.Jadi, saya bisa mengabaikan "clone the hooks thing" ini, atau memilih
rsync
strategi, mengingat tujuan mirror saya (hanya cadangan + sumber untuk klon lain).Yah ... Saya hanya akan lupa tentang kloning kait, dan tetap di
git remote update
jalan.clone
/update
, tetapi juga simpanan, rerere, dll ... Jadi, untuk cadangan yang ketat,rsync
atau setara akan benar-benar cara untuk pergi. Karena ini tidak benar - benar diperlukan dalam kasus saya (saya tidak dapat memiliki kait, simpanan, dan sebagainya), seperti yang saya katakan, saya akan tetap menggunakanremote update
.Terima kasih! Memperbaiki sedikit "git-fu" saya sendiri ... :-)
sumber
Lihat di sini: Git tidak mengkloning semua cabang pada klon berikutnya?
Jika Anda benar-benar menginginkan ini dengan menarik cabang alih-alih
push --mirror
, Anda dapat melihatnya di sini:"fetch --all" di repositori git bare tidak menyinkronkan cabang lokal ke yang jauh
Jawaban ini memberikan langkah-langkah terperinci tentang cara mencapai hal itu dengan relatif mudah:
sumber
push
bukan pilihan bagi saya karena saya harus melakukannya di sisi penerima (dari tempat klon berada);pull
juga bukan pilihan karena repositori cermin adalah repositori kosong (tidak ada pohon yang berfungsi, jadi tidak ada "tarikan") - tampaknyagit remote update
memang semuanya (jauh lebih mudah daripada jawaban yang dirujuk) ... Pokoknya, terima kasih! Tentu saja ada informasi berharga dalam pertanyaan / jawaban terkait.rsync
mendukungnya. Juga, saya berasumsi Anda lupa tentang simpanan (lihat di sini ) dan rerere informasi juga ...?