EN: Read in English
Dunia 10: Git Mendalam
Objek dan hash
Anda akan belajar: apa yang Git simpan sebenarnya, dan cara setiap bahagian dapat nama.
Teks BM belum disemak oleh penutur asli.
Masalahnya
Kedai anda ada 3 commit (titik simpan). style.css tak pernah berubah. Adakah Git simpan fail itu 3 kali?
Pilih satu jawapan.
Tengok
Git simpan semuanya sebagai objek (object) (object): Satu benda yang Git simpan: blob, tree, commit atau tag. Namanya ialah hash isinya. (object). git cat-file -p HEAD buka commit terbaru. Ia tunjuk ke satu tree: Objek yang senaraikan satu folder: nama yang tunjuk ke blob (fail) dan tree (folder). (senarai fail) dan satu parent (commit sebelumnya).
Cuba
blob: Objek yang simpan isi satu fail. Tiada nama, isi sahaja. ialah isi satu fail. Buka commit, kemudian tree, kemudian css. Cari blob untuk css/style.css.
Cari blob yang simpan css/style.css.
Pilih satu commit untuk tengok isinya.
Petunjuk
Klik id pada baris tree. Kemudian id di sebelah css.Semak
Tiga jenis objek. Yang mana simpan setiap benda ini?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Tengok
Nama setiap objek ialah hash (id commit) (hash (commit id)): Kod unik yang menamakan satu commit, contohnya a1b2c3d. SHA-1: Resipi yang Git guna sekarang untuk buat id 40 aksara daripada isi.. Ia ada 40 aksara, dibuat daripada isinya. Id pendek cuma permulaannya.
Teka
Anda salin about.html ke about-copy.html dan commit. Berapa blob baru yang Git simpan?
Pilih satu jawapan.
Cuba
Jenis keempat ialah objek tag: label dengan nota. Buka v1.0 dan tengok ia tunjuk ke mana.
Petunjuk
Taipgit cat-file -p v1.0.Anda berjaya!
Kini anda boleh buka objek Git dan namakan keempat-empat jenisnya.
Nak tahu lebih (pilihan)
Tag beranotasi (git tag -a) ialah objek. Tag ringan cuma ref. Git mampatkan setiap objek dan simpan dalam .git/objects. git cat-file -t cetak jenis objek. git cat-file -s cetak saiznya. Git 3.0 merancang id SHA-256 untuk repo baru.
English
Your shop has 3 commits. style.css never changed. Does Git store it 3 times?
Git keeps everything as objects. git cat-file -p HEAD opens the newest commit. It points to a tree (the files). Its parent is the commit before.
A blob is the content of one file. Open the commit, then its tree, then css. Find the blob of css/style.css.
Three kinds of object. Which one holds each thing?
Each object’s name is a SHA-1 hash. It has 40 characters, made from the content. The short id is just the start.
You copy about.html to about-copy.html and commit. How many new blobs does Git store?
The fourth kind is a tag object: a label with a note. Open v1.0 and see where it points.
git cat-file -p v1.0.You can now open Git’s objects and name all four kinds.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: git cat-file · gitglossary (object, blob, tree) · git rev-parse
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?