Tutorial Git Mu...login
Tutorial Git Mula Pantas
pengarang:php.cn  masa kemas kini:2022-04-11 13:44:34

Ruang kerja Git, kawasan pementasan dan repositori



Konsep asas

Mari kita fahami konsep ruang kerja Git, kawasan pementasan dan repositori

  • Ruang kerja: ialah direktori yang boleh anda lihat pada komputer anda.

  • Kawasan simpanan sementara: Dalam bahasa Inggeris ia dipanggil stage, atau index. Ia biasanya disimpan dalam fail indeks (.git/index) di bawah "direktori git", jadi kami kadangkala memanggil kawasan storan sementara indeks (indeks).

  • Repositori: Ruang kerja mempunyai direktori tersembunyi .git Ini bukan ruang kerja, tetapi repositori Git.

Rajah berikut menunjukkan hubungan antara kawasan kerja, kawasan pementasan dalam repositori dan repositori:

Sebelah kiri rajah ialah kawasan kerja, dengan perpustakaan versi di sebelah kanan. Kawasan bertanda "indeks" dalam repositori ialah kawasan pementasan (peringkat, indeks), dan kawasan bertanda "induk" ialah pokok direktori yang diwakili oleh cawangan induk.

Dalam gambar, kita dapat melihat bahawa "KEPALA" sebenarnya adalah "kursor" yang menunjuk ke cawangan induk. Oleh itu, apabila HEAD muncul dalam arahan yang ditunjukkan dalam rajah, ia boleh digantikan dengan master.

Kawasan yang dikenal pasti oleh objek dalam gambar ialah perpustakaan objek Git, yang sebenarnya terletak dalam direktori ".git/objects", yang mengandungi pelbagai objek dan kandungan yang dicipta.

Apabila arahan "git add" dilaksanakan pada fail yang diubah suai (atau ditambah) dalam ruang kerja, pepohon direktori dalam kawasan pementasan dikemas kini dan kandungan fail diubah suai (atau ditambah) dalam ruang kerja ditulis ke objek baharu dalam pustaka objek, dan ID objek direkodkan dalam indeks fail kawasan storan sementara.

Apabila menjalankan operasi komit (git commit), pepohon direktori dalam kawasan pementasan ditulis ke perpustakaan versi (pustaka objek), dan cawangan induk akan dikemas kini dengan sewajarnya. Iaitu, pokok direktori yang ditunjuk oleh induk ialah pokok direktori bagi kawasan simpanan sementara pada masa penyerahan.

Apabila arahan "git reset HEAD" dilaksanakan, pepohon direktori dalam kawasan pementasan akan ditulis semula dan digantikan dengan pepohon direktori yang ditunjuk oleh cawangan induk, tetapi ruang kerja tidak akan terjejas.

Apabila perintah "git rm --cached <file>" dilaksanakan, fail akan dipadamkan terus dari kawasan pementasan dan ruang kerja tidak akan diubah.

Apabila perintah "git checkout ." atau "git checkout -- <file>" dilaksanakan, fail dalam ruang kerja akan digantikan dengan semua atau fail yang ditentukan dalam kawasan pementasan. Operasi ini berbahaya dan akan mengosongkan perubahan dalam ruang kerja yang belum ditambahkan ke kawasan pementasan.

Apabila arahan "git checkout HEAD ." atau "git checkout HEAD <file>" dilaksanakan, semua atau sebahagian daripada fail dalam cabang induk yang ditunjuk oleh HEAD akan digunakan untuk menggantikan kawasan pementasan dan ruang kerja. Perintah ini juga amat berbahaya, kerana ia bukan sahaja akan mengosongkan perubahan yang tidak dikomitkan dalam ruang kerja, tetapi juga mengosongkan perubahan yang tidak dikomitkan dalam kawasan pementasan.

Laman web PHP Cina