Rumah > alat pembangunan > git > teks badan

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

青灯夜游
Lepaskan: 2021-12-29 17:29:08
asal
4734 orang telah melayarinya

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.

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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:

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?
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:
Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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

从Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di 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

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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.

Apakah perbezaan antara kawasan pementasan dan perpustakaan tempatan di git?

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):

  • Jika pengubahsuaian belum diserahkan lagi Dalam kawasan pementasan, anda boleh menggunakan git checkcout untuk memulihkan
  • Jika pengubahsuaian telah diserahkan kepada kawasan pementasan tetapi belum diserahkan kepada gudang tempatan, mula-mula gunakan git reset HEAD untuk memulihkan keadaan kawasan pementasan, dan kemudian gunakan git checkout untuk memulihkan 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!