Persoalan ini timbul apabila mempelajari Pro git "cawangan jauh".
Soalan:
Adakah git fetch menjana salinan setempat apabila mengambil cawangan penjejakan jauh?
Baca penjelasan asal dahulu,
Jika anda ingin menyegerakkan kerja anda, jalankan arahan git fetch origin. Perintah ini mencari pelayan "asal" yang mana (dalam kes ini, ia adalah git.ourcompany.com), mengambil data daripadanya yang tidak tersedia secara setempat, dan mengemas kini pangkalan data setempat, mengalihkan penuding asal/induk ke arah yang baharu , Lokasi yang dikemas kini.
Daripada gambar, kerana cawangan induk adalah tempatan, selepas mengkloning gudang terpencil (titik penyerahan f4265), dua penyerahan tempatan telah dibuat, menghasilkan rantaian penyerahan baharu. Pada masa yang sama, orang lain pada pelayan menolak cawangan induk (31b8e, 190a3) yang komited kepada pelayan Oleh itu, apabila menggunakan git fetch origin, pemahaman saya ialah:
Cawangan induk tempatan tidak akan terjejas, dari titik fork. iaitu Bermula dari asal/induk sebelum diambil, cawangan baharu dijana secara setempat. Cawangan ini menjana salinan setempat, dan pada masa yang sama, penuding asal/induk menghala ke penghujung salinan setempat.
Tetapi selepas membaca di bawah, perenggan ini muncul lagi:
Satu perkara yang perlu diberi perhatian khusus ialah apabila cawangan penjejakan jauh baharu ditangkap, salinan (salinan) yang boleh diedit tidak akan dijana secara tempatan secara automatik. Dalam erti kata lain, dalam kes ini, tidak akan ada cawangan pembaikan pelayan baharu - hanya penunjuk asal/pembetulan pelayan yang tidak boleh diubah suai.
Saya tidak faham adakah pemahaman saya sebelum ini salah? Jadi ilustrasi dalam Rajah 32 juga salah? Kedua-dua mata komit (31b8e, 190a3) tidak akan diperoleh secara tempatan sama sekali, tetapi hanya penuding asal/induk baharu akan diperolehi dalam pangkalan data? Teks asal utama mengatakan "rebut data yang tidak tersedia secara tempatan dan kemas kini pangkalan data setempat" adalah sangat kabur dan ia tidak menyatakan data itu.
Tiada apa yang salah.
Fokus pada ini, cawangan ini adalah tuan.
Jadi, anda perlu menggunakan
git checkout -b serverfix origin/serverfix
untuk mencipta salinan tempatan boleh diedit .Hanya cawangan induk akan membuat salinan tempatan boleh diedit . Cawangan lain semua ada di
origin/*
下面,需要手动的git checkout -b
.