ការអាន History
មាតិកា
- git log៖ បញ្ជីនៃ Snapshot
- Commit Hash
- HEAD៖ អ្នកនៅទីនេះ
- git diff៖ តើមានអ្វីផ្លាស់ប្តូរ?
- git show៖ មើលទៅខាងក្នុង Commit មួយ
- ស្វែងរកអ្វីៗនៅក្នុង History
- ការសរសេរ Commit Message ឲ្យបានល្អ
- សាកល្បងដោយខ្លួនឯង
1. git log៖ បញ្ជីនៃ Snapshot
នៅខាងក្នុង my-site សូមរត់៖
git log
commit 8b1e4d07c2f5a9e3b6d1c0f4a7e2b9d8c3f6a1e5 (HEAD -> main)
Author: Dara Sok <dara@example.com>
Date: Mon Oct 5 10:24:13 2026 +0700
Add .gitignore
commit c47a2e91d3b8f6a0e5c2d7b4a9f1e3c8d6b0a2f7
Author: Dara Sok <dara@example.com>
Date: Mon Oct 5 10:18:40 2026 +0700
Add where I live
commit 3f2a1c95e8d7b4a6c0f3e1d9b2a8c7f5e4d6b1a3
Author: Dara Sok <dara@example.com>
Date: Mon Oct 5 10:11:02 2026 +0700
Add home page
commit ថ្មីបំផុតនៅខាងលើគេ។ commit នីមួយៗបង្ហាញ ID, អ្នកសរសេរ (author), កាលបរិច្ឆេទ និង message របស់វា។ (ID និងកាលបរិច្ឆេទរបស់អ្នកនឹងខុសពីនេះ ហើយអ្នកប្រហែលជាមាន commit ច្រើនជាងនេះបន្តិច ពីលំហាត់នៅជំពូកមុន។)
បើបញ្ជីវែង វានឹងបើកនៅក្នុង pager — រំកិលមើលដោយប្រើគ្រាប់ចុចព្រួញ ហើយចុច q ដើម្បីចាកចេញ។
សម្រាប់ទិដ្ឋភាពខ្លី មួយបន្ទាត់ក្នុងមួយ commit៖
git log --oneline
8b1e4d0 (HEAD -> main) Add .gitignore
c47a2e9 Add where I live
3f2a1c9 Add home page
អ្នកនឹងប្រើ --oneline ញឹកញាប់ជាងទម្រង់ពេញលេញច្រើន។
2. Commit Hash
ID វែងនោះ — 8b1e4d07c2f5a9e3b6d1c0f4a7e2b9d8c3f6a1e5 — គឺជា hash របស់ commit។ វាមាន 40 ខ្ទង់ជាលេខ hexadecimal (លេខគោល 16 ដែលអ្នកបានជួបនៅក្នុង Bit, Byte ហើយអ្វីៗទាំងអស់គឺជាលេខ) ដែលគណនាចេញពីអ្វីៗទាំងអស់នៅក្នុង commit៖ មាតិកា file, អ្នកសរសេរ, កាលបរិច្ឆេទ, message និង commit ដែលនៅមុនវា។
ចំណុចនេះនាំមកនូវលទ្ធផលពីរដែលមានប្រយោជន៍៖
- commit នីមួយៗមាន ID តែមួយគត់។ តាមការអនុវត្តជាក់ស្តែង គ្មាន commit ពីរណាមួយ នៅកន្លែងណាក៏ដោយក្នុងពិភពលោក ដែលមាន ID ដូចគ្នានោះទេ។
- history មិនអាចផ្លាស់ប្តូរដោយស្ងាត់ៗបានទេ។ បើនរណាម្នាក់ផ្លាស់ប្តូរសូម្បីតែអក្សរមួយនៃ commit ចាស់ hash របស់វានឹងផ្លាស់ប្តូរ — ហើយ hash របស់ commit ទាំងអស់បន្ទាប់ពីវាក៏ផ្លាស់ប្តូរដែរ។ Git នឹងកត់សម្គាល់ឃើញភ្លាមៗ។
អ្នកមិនចាំបាច់វាយទាំង 40 ខ្ទង់ទេ។ ប្រហែល 7 ខ្ទង់ដំបូងគឺគ្រប់គ្រាន់ហើយសម្រាប់ Git ដើម្បីដឹងថាអ្នកចង់និយាយពី commit មួយណា នោះហើយជាមូលហេតុដែល --oneline បង្ហាញ 8b1e4d0។
3. HEAD៖ អ្នកនៅទីនេះ
នៅក្នុង log អ្នកបានឃើញ (HEAD -> main)។ HEAD គឺជាសញ្ញា «អ្នកនៅទីនេះ» របស់ Git៖ វាចង្អុលទៅ commit ដែលអ្នកកំពុងនៅ ដែលជាធម្មតាគឺ commit ថ្មីបំផុតនៅលើ branch បច្ចុប្បន្នរបស់អ្នក។
HEAD ងាយស្រួលប្រើសម្រាប់សំដៅទៅលើ commit ដោយមិនចាំបាច់ចម្លង hash៖
| អ្នកវាយ | វាមានន័យថា |
|---|---|
HEAD | commit ដែលអ្នកកំពុងនៅឥឡូវនេះ |
HEAD~1 | commit មួយនៅមុននោះ |
HEAD~2 | commit ពីរនៅមុននោះ |
អ្នកនឹងប្រើវាទាំងនេះនៅជំពូកបន្ទាប់ ដើម្បី undo អ្វីៗ។
4. git diff៖ តើមានអ្វីផ្លាស់ប្តូរ?
បើក index.html ហើយបន្ថែមបន្ទាត់មួយនៅខាងក្រោម «I live in Phnom Penh»៖
<p>My favorite food is num banh chok.</p>
រក្សាទុកវា ប៉ុន្តែកុំទាន់ stage វា។ ឥឡូវសួរ Git ថាតើមានអ្វីផ្លាស់ប្តូរ៖
git diff
diff --git a/index.html b/index.html
index 5d2f1a3..9c8e4b7 100644
--- a/index.html
+++ b/index.html
@@ -7,5 +7,6 @@
<h1>Hi, I'm Dara</h1>
<p>I'm learning Git.</p>
<p>I live in Phnom Penh.</p>
+ <p>My favorite food is num banh chok.</p>
</body>
</html>
របៀបអានវា៖
--- a/និង+++ b/— កំណែចាស់ និងកំណែថ្មីនៃindex.html។@@ -7,5 +7,6 @@— ទីតាំងនៅក្នុង file៖ ចាប់ផ្តើមពីបន្ទាត់ទី 7 កំណែចាស់មាន 5 បន្ទាត់នៅត្រង់នេះ ហើយកំណែថ្មីមាន 6 បន្ទាត់។- បន្ទាត់ដែលចាប់ផ្តើមដោយ
+ត្រូវបានបន្ថែម (ពណ៌បៃតងនៅក្នុង terminal ភាគច្រើន)។ - បន្ទាត់ដែលចាប់ផ្តើមដោយ
-ត្រូវបានលុបចេញ (ពណ៌ក្រហម)។ នៅទីនេះគ្មានទេ។ - បន្ទាត់ដែលគ្មានសញ្ញា គឺជាបរិបទដែលមិនបានផ្លាស់ប្តូរ ដែលបង្ហាញដើម្បីឲ្យអ្នកមើលឃើញថាការផ្លាស់ប្តូរនៅត្រង់ណា។
បន្ទាត់ដែលត្រូវបានកែប្រែ នឹងបង្ហាញជាបន្ទាត់ដែលត្រូវបានលុបចេញ ហើយតាមពីក្រោយដោយបន្ទាត់ដែលត្រូវបានបន្ថែម។
ឥឡូវ stage ការផ្លាស់ប្តូរនោះ ហើយរត់ git diff ម្តងទៀត៖
git add index.html
git diff
គ្មានអ្វីសោះ! រឿងនេះធ្វើឲ្យមនុស្សគ្រប់គ្នាភ្ញាក់ផ្អើលនៅលើកដំបូង។ git diff ធម្មតាបង្ហាញតែការផ្លាស់ប្តូរដែល មិនទាន់ stage ប៉ុណ្ណោះ។ ដើម្បីមើលអ្វីដែលនៅក្នុង staging area — អ្វីដែល commit បន្ទាប់នឹងមាន — សូមប្រើ៖
git diff --staged
ការអាន git diff --staged មុនពេល commit រាល់លើក គឺជាទម្លាប់ដ៏ល្អមួយ។ វាជាឱកាសចុងក្រោយដើម្បីរកឃើញបន្ទាត់ debug ដែលភ្លេចលុប ឬ file ដែលអ្នកមិនចង់ដាក់បញ្ចូល។ ចូរ commit វាចុះ៖
git commit -m "Add favorite food"
អ្នកក៏អាចប្រៀបធៀប commit ពីរណាមួយក៏បានដែរ៖
git diff 3f2a1c9 HEAD # everything that changed since the first commit
5. git show៖ មើលទៅខាងក្នុង Commit មួយ
ដើម្បីមើលថា commit តែមួយបានផ្លាស់ប្តូរអ្វីខ្លះ សូមប្រើ git show ជាមួយ hash របស់វា៖
git show c47a2e9
វាបង្ហាញអ្នកសរសេរ កាលបរិច្ឆេទ និង message របស់ commit ហើយតាមពីក្រោយដោយ diff របស់វា។ git show តែឯង បង្ហាញ commit ចុងក្រោយបំផុត (HEAD)។
6. ស្វែងរកអ្វីៗនៅក្នុង History
វិធីមួយចំនួនទៀតដើម្បីសួរសំណួរអំពីអតីតកាល៖
git log --oneline -5 # only the last 5 commits
git log --oneline index.html # only commits that changed index.html
git log -p # every commit with its full diff
git log --author="Dara" # only commits by one person
git log --grep="food" # commits whose message mentions "food"
ហើយ command មួយក្នុងចំណោម command ដែលមានប្រយោជន៍បំផុតនៅពេលធ្វើការជាក្រុម៖
git blame index.html
វាបង្ហាញបន្ទាត់នីមួយៗនៃ file នៅក្បែរ commit និងអ្នកសរសេរដែលបានផ្លាស់ប្តូរវាចុងក្រោយ។ នៅពេលអ្នកឃើញបន្ទាត់កូដណាមួយដែលពិបាកយល់ git blame ប្រាប់អ្នកថាអ្នកណាជាអ្នកសរសេរវា និង commit មួយណាដែលត្រូវអាន ដើម្បីដឹងពីមូលហេតុ។ (GitHub ក៏មានទិដ្ឋភាពដូចគ្នាដែរ៖ បើក file ណាមួយ ហើយចុច Blame។)
7. ការសរសេរ Commit Message ឲ្យបានល្អ
history មានប្រយោជន៍ត្រឹមតែល្អដូច message របស់វាប៉ុណ្ណោះ។ សូមប្រៀបធៀប log ទាំងពីរនេះ៖
a1b2c3d fix
e4f5a6b stuff
b7c8d9e changes
f0a1b2c wip
a1b2c3d Fix broken link to about page
e4f5a6b Add contact email to footer
b7c8d9e Make heading smaller on phones
f0a1b2c Add about page
log ទីពីរប្រាប់ពីរឿងរ៉ាវរបស់ project។ ប្រាំមួយខែទៀត អ្នកនឹងអាចរកឃើញ commit ដែលអ្នកកំពុងស្វែងរកបានយ៉ាងត្រឹមត្រូវ។
ច្បាប់សាមញ្ញៗដែលក្រុមភាគច្រើនអនុវត្តតាម៖
- រៀបរាប់ថា commit នោះធ្វើអ្វី ក្នុងទម្រង់ជាបញ្ជា៖ "Add about page" មិនមែន "Added about page" ឬ "Adding about page" ទេ។ វិធីសាកល្បងដ៏ល្អមួយ៖ message គួរតែបំពេញប្រយោគ "If applied, this commit will…" (បើអនុវត្ត commit នេះនឹង…) បាន។
- រក្សាបន្ទាត់ទីមួយឲ្យខ្លី — ប្រហែល 50 តួអក្សរ — ដើម្បីឲ្យវាសមល្មមនៅក្នុង
git log --onelineនិងនៅលើ GitHub។ - មួយ commit មួយគំនិត។ បើ message របស់អ្នកត្រូវការពាក្យ "and" (និង) វាប្រហែលជាគួរតែជា commit ពីរ។
- ពន្យល់ពី មូលហេតុ នៅពេលដែលវាមិនច្បាស់។ សម្រាប់ករណីនេះ សូមសរសេរ message នៅក្នុង editor របស់អ្នកជំនួសឲ្យការប្រើ
-m៖ រត់git commitដាក់សេចក្តីសង្ខេបខ្លីនៅបន្ទាត់ទីមួយ ទុកបន្ទាត់ទទេមួយ បន្ទាប់មកសរសេរឲ្យបានច្រើនតាមដែលអ្នកត្រូវការ។
Remove autoplay from the intro video
Autoplaying video uses a lot of mobile data, and several visitors
on phones said the page felt slow. The video now starts only when
clicked.
8. សាកល្បងដោយខ្លួនឯង
- អាន history របស់អ្នក ដោយប្រើ
git logបន្ទាប់មកgit log --oneline។ ចុចqបើអ្នកជាប់នៅក្នុង pager។ - រក HEAD។ តើ commit មួយណាដែលមាន
(HEAD -> main)នៅក្បែរវា? - ប្រើ diff របស់ staging area។ ផ្លាស់ប្តូរចំណងជើង
<h1>របស់អ្នក។ រត់git diff(អ្នកឃើញការផ្លាស់ប្តូរ),git add index.html,git diff(ទទេ) បន្ទាប់មកgit diff --staged(វានៅទីនោះ)។ commit វាជាមួយ message ល្អមួយ។ - មើលទៅខាងក្នុង commit ចាស់មួយ។ យក hash របស់ "Add where I live" ពី
git log --onelineហើយរត់git showជាមួយវា។ - សួរថាអ្នកណាសរសេរអ្វី។ រត់
git blame index.html។ សម្រាប់ពេលនេះ គ្រប់បន្ទាត់គឺជាអ្នក — រឿងនេះនឹងផ្លាស់ប្តូរនៅពេលអ្នកធ្វើការជាមួយអ្នកផ្សេង។ - សរសេរ message ច្រើនបន្ទាត់។ ធ្វើការផ្លាស់ប្តូរតូចមួយ stage វា ហើយរត់
git commitដោយគ្មាន-m។ សរសេរសេចក្តីសង្ខេបខ្លីមួយ បន្ទាត់ទទេមួយ និងប្រយោគមួយពន្យល់ពីមូលហេតុ។ បន្ទាប់មកមើលវាដោយប្រើgit log។
ឥឡូវនេះអ្នកអាចអាន history បានហើយ អ្នកអាចប្រើវាដើម្បីកែកំហុស។
ទិញកាហ្វេជូនខ្ញុំ
ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!