Perbezaan antara kawasan pementasan dan perpustakaan tempatan dalam git: kawasan pementasan, juga dipanggil kawasan indeks, ialah kawasan peralihan antara ruang kerja dan gudang tempatan Ia merekodkan status kod ruang kerja (. sama ada terdapat perubahan atau tidak). , atau perubahan yang telah dibuat); dan repositori tempatan merekodkan status kod tempatan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Git 2.30.0, komputer Dell G3.
1. Memahami konsep yang berkaitan dengan git warehouse
Untuk memahami arahan git secara mendalam, anda mesti memahami beberapa konsep yang berkaitan dengan git warehouse. Mula-mula, lihat direktori kod tempatan D: direktori gittest:
Perlu diingat bahawa .git ialah direktori tersembunyi dan anda perlu memaparkan fail tersembunyi untuk melihatnya.
Direktori kerja : Ringkasnya, fail atau direktori yang disimpan secara setempat tergolong dalam ruang kerja dan pengubahsuaian kod biasanya dilakukan di ruang kerja. Secara amnya, fail tempatan, kecuali untuk direktori .git tersembunyi, tergolong dalam ruang kerja. Mydir, file1.txt dan file2.txt yang dilihat dalam gambar di atas semuanya tergolong dalam ruang kerja.
Peringkat : juga dikenali sebagai kawasan indeks Seperti namanya, ia adalah peralihan antara ruang kerja dan gudang tempatan. Ia merekodkan status kod ruang kerja (Ada sebarang perubahan, atau perubahan yang telah dibuat). Terletak dalam direktori .git.
Repositori tempatan (repositori) : merekodkan status kod tempatan dan terletak dalam direktori .git.
Mengenai pemahaman status:
Fikirkanlah, apabila kita biasanya mengubah suai fail penting, kita mesti membuat sandaran terlebih dahulu untuk mengelakkan ralat pengubahsuaian, dan akhirnya pulih. Jika fail itu sendiri besar, ia akan mengambil lebih banyak ruang jika disandarkan, yang tidak menjimatkan kos. Terdapat cara lain, iaitu merekodkan status pengubahsuaian fail dan bukannya membuat sandaran fail itu sendiri. Status fail adalah serupa dengan perihalan berikut:
Barisan pertama fail: gantikan xxx dengan ****
Di antara baris ketiga dan keempat fail, satu baris ditambah , kandungannya adalah...
Secara terang-terangan, status fail adalah rekod pengubahsuaian fail tersebut, kita boleh tahu apa pengubahsuaian yang telah kita buat pada fail tersebut rekod pengubahsuaian, kami juga boleh memulihkan fail ke keadaan sebelum pengubahsuaian.
2. Penjelasan arahan git
Beberapa arahan yang berkaitan dengan melihat status:
status git Lihat fail di tempat kerja Perubahan antara kawasan, kawasan pementasan dan gudang tempatan
git diff Semak perbezaan antara ruang kerja dan kawasan pementasan
git diff --cached Periksa perbezaan antara kawasan pementasan dan gudang tempatan
git diff HEAD Lihat perbezaan antara ruang kerja dan repositori setempat
Operasi yang sepadan bagi beberapa arahan adalah seperti berikut:
Berikut ialah contoh khusus Ambil perhatian bahawa pengubahsuaian fail tempatan akan membawa kepada perubahan dalam kawasan yang berkaitan
Sebelum pengubahsuaian, status antara ruang kerja, kawasan pementasan dan gudang tempatan adalah konsisten
(1) Secara setempat fail fail yang diubah suai1 Tambah baris dalam .txt tambah baris ini
status git Semak perubahan fail dalam ruang kerja, kawasan pementasan dan gudang setempat
Seperti yang anda lihat dalam gambar di atas, Perubahan tidak dipentaskan untuk komit:, menunjukkan bahawa fail telah berubah dalam ruang kerja, tetapi pengubahsuaian masih belum diserahkan kepada kawasan pementasan
kerja paparan git diff Perubahan antara kawasan kerja dan kawasan pementasan
Seperti yang dapat dilihat daripada rajah, perubahan telah berlaku antara kawasan kerja dan kawasan pementasan . Ini disebabkan oleh pengubahsuaian fail tempatan, dan Pengubahsuaian masih belum diserahkan kepada kawasan pementasan
git diff HEAD Semak status antara ruang kerja dan gudang tempatan
Seperti yang dapat dilihat dari gambar di atas, Perbezaan juga timbul antara ruang kerja dan repositori tempatan. Ia sangat mudah pada masa ini, status gudang tempatan dan kawasan pementasan adalah konsisten
git diff --cached Jika anda menyemak kawasan pementasan dan gudang tempatan, anda akan mendapati tiada perbezaan di antara mereka
(2) Serahkan pengubahsuaian tempatan ke kawasan pementasan
git add Serahkan pengubahsuaian tempatan ke kawasan pementasan
status git
Anda boleh melihat bahawa perubahan telah diserahkan kepada kawasan pementasan: Perubahan yang perlu dilakukan:
Selepas menyerahkan, gunakan git diff untuk menyemak , anda akan dapati ruang kerja dan kawasan pementasan telah Tiada bezanya lagi.
Tetapi terdapat perbezaan antara kawasan pementasan dan kawasan kerja.
git diff --cached
Begitu juga, menggunakan git diff HEAD anda akan mendapati masih terdapat perbezaan antara ruang kerja dan gudang tempatan
(3) Serahkan perubahan kepada gudang tempatan
git commit -m “add a line in file1.txt” Serahkan perubahan dari kawasan pementasan ke gudang tempatan
Semak status git, ia akan menggesa cawangan Anda mendahului 'asal/induk' oleh 1 komit Menunjukkan bahawa perubahan dalam ruang kerja telah diserahkan kepada gudang tempatan, tetapi masih belum ditolak ke cawangan terpencil.
git diff, git diff --cached, git diff HEAD tidak akan mendapati perbezaan dalam gesaan. Oleh kerana pengubahsuaian pada ruang kerja telah diserahkan kepada gudang tempatan, status ruang kerja, kawasan pementasan dan gudang tempatan adalah konsisten pada masa ini.
Kendalian songsang
git add – git checkout mengembalikan fail ruang kerja kepada keadaan kawasan pementasan dan menggantikan fail ruang kerja dengan fail kawasan pementasan.
Sebagai contoh, jika fail file1.txt diubah suai dalam ruang kerja, ia masih belum diserahkan ke kawasan storan sementara. Jika anda ingin meninggalkan pengubahsuaian, anda boleh menggunakan
git checkout file1.txt untuk mengembalikan fail ke kawasan pementasan (meninggalkan pengubahsuaian)
git commit – git reset HEAD untuk menarik komitmen terkini kepada tempatan Fail-fail dalam gudang dipindahkan ke kawasan simpanan sementara tanpa menjejaskan kawasan kerja.
Ringkasan:
Jika kita mahu meninggalkan pengubahsuaian fail setempat (ruang kerja):
Pembelajaran yang disyorkan: "Tutorial Git"
Atas ialah kandungan terperinci Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!