[toc]
Git ๆฏไธไธช้ๅธธๅผบๅคง็็ๆฌ็ฎก็ๅทฅๅ ท๏ผๆ้ๅธธๅค็ๆฆๅฟตๅๅฝไปค๏ผไนๆ้ๅธธๅคไธๅคๆ็็จๆณใไฝๆฏๅ ถๅบๅฑๆจกๅ็ธๅฏน่่จๅด้ๅธธ็ฎๅ๏ผไบ่งฃๅบๅฑๅฏน่ฑกๆจกๅๅฐ้ๅธธๆๅฉไบ็่งฃไธๅฑๅฝไปคๅฐๅบๅฏนไปๅบๅไบไปไนใๅฆๆๆณ่ฆ็ฒพ้ Git๏ผไบ่งฃๅบๅฑๅฏน่ฑกๆจกๅไนๆฏๅฟ ไธๅฏๅฐ็ใๆฌๆๅฐไผ้่ฟๅบๆฌ็ๅฝไปคๆไฝ๏ผๅๆๆฏไธๆญฅๆไฝๅฏนไปๅบๆฐๆฎๅไบๅชไบๆนๅจ๏ผ่ฟ่ๅๆๅบ Git ๅบๅฑๅฏน่ฑกๆจกๅใ
ๆๆ็จๆฅ่กจ็คบ้กน็ฎๅๅฒไฟกๆฏ็ๆไปถ๏ผ้ฝๆฏ้่ฟไธไธช 40 ไธชๅญ็ฌฆ็๏ผ40-digit๏ผโๅฏน่ฑกๅโ ๆฅ็ดขๅผ็๏ผๅฏน่ฑกๅ็่ตทๆฅๅ่ฟๆ ท:
6ff87c4664981e4397625791c8ea3bbb5f2279a3
ๅจๅ่พนไฝฟ็จๅฏน่ฑกๅๆถ๏ผๅชไฝฟ็จๅ้ขๅ ไธชๅญ็ฌฆๅณๅฏ๏ผไฝๆฏๆๅฐ้่ฆ 4 ไธชใ
ไฝ ไผๅจ Git ้ๅฐๅค็ๅฐ่ฟ็ง โ40 ไธชๅญ็ฌฆโ ๅญ็ฌฆไธฒใๆฏไธไธช โๅฏน่ฑกๅโ ้ฝๆฏๅฏน โๅฏน่ฑกโ ๅ ๅฎนๅ SHA1 ๅๅธ่ฎก็ฎๅพๆฅ็ใ่ฟๆ ทๅฐฑๆๅณ็ไธคไธชไธๅๅ ๅฎน็ๅฏน่ฑกๅ ไนไธๅฏ่ฝ๏ผ็่ฎบไธๆฏๅฏ่ฝๅ็็ขฐๆ็๏ผๆ็ธๅ็ โๅฏน่ฑกๅโใ
่ฟๆ ทๅไผๆๅ ไธชๅฅฝๅค๏ผ
-
ๅช่ฆๆฏ่พๅฏน่ฑกๅ๏ผๅฐฑๅฏไปฅๅพๅฟซ็ๅคๆญไธคไธชๅฏน่ฑกๆฏๅฆ็ธๅใ
ๅ ไธบๅจๆฏไธชไปๅบ๏ผrepository๏ผ็ โๅฏน่ฑกๅโ ็่ฎก็ฎๆนๆณ้ฝๅฎๅ จไธๆ ท๏ผๅฆๆๅๆ ท็ๅ ๅฎนๅญๅจไธคไธชไธๅ็ไปๅบไธญ๏ผๅฐฑไผๅญๅจ็ธๅ็ โๅฏน่ฑกๅโ ไธใ
-
่ฟๅฏไปฅ้่ฟๆฃๆฅๅฏน่ฑกๅ ๅฎน็ SHA1 ็ๅๅธๅผๅ โๅฏน่ฑกๅโ ๆฏๅฆ็ธๅ๏ผๆฅๅคๆญๅฏน่ฑกๅ ๅฎนๆฏๅฆๆญฃ็กฎใ
ๆฏไธชๅฏน่ฑก (object) ๅ ๆฌไธไธช้จๅ๏ผ็ฑปๅใๅคงๅฐๅๅ ๅฎนใๅคงๅฐๅฐฑๆฏๆๅ ๅฎน็ๅคงๅฐ๏ผๅ ๅฎนๅๅณไบๅฏน่ฑก็็ฑปๅใ
ๆๅ็ง็ฑปๅ็ๅฏน่ฑก๏ผ"blob"ใ"tree"ใ"commit" ๅ "tag"ใ
ๅ ไนๆๆ็ Git ๅ่ฝ้ฝๆฏไฝฟ็จ่ฟๅไธช็ฎๅ็ๅฏน่ฑก็ฑปๅๆฅๅฎๆ็ใๅฎๅฐฑๅๆฏๅจไฝ ๆฌๆบ็ๆไปถ็ณป็ปไนไธๆๅปบไธไธชๅฐ็ๆไปถ็ณป็ปใ
blob ็จๆฅๅญๅจๆไปถๆฐๆฎ๏ผ้ๅธธๆฏไธไธชๆไปถใ
tree ๅไธไธช็ฎๅฝ๏ผ็ฎก็ tree๏ผๅญ็ฎๅฝ๏ผ ๆ blob๏ผๆไปถ๏ผ
ไธไธช commit ๅชๆๅไธไธช tree๏ผๅฎ็จๆฅๆ ่ฎฐ้กน็ฎๆไธไธช็นๅฎๆถ้ด็น็็ถๆใcommit ไฟๅญไบๆ ๆ น็ ๅฏน่ฑกๅใ
ๅฎๅ
ๆฌไธไบๅ
ณไบๆถ้ด็น็ๅ
ๆฐๆฎ๏ผๅฆ ๆถ้ดๆณใๆ่ฟไธๆฌกๆไบค็ไฝ่
ใๆๅไธๆฌกๆไบค๏ผcommits๏ผ็ๆ้ ็ญ็ญใ
$ git cat-file -p 830f4857e9f579818c5e69104d3e2cc30f1f0d0d
tree f25061fa4f8b3bffbf8ebcc3ab2351efdad2f605
parent 06e13701ac86eb09c2035329a5e1c18f95898cf2
author smile<3293172751nss@gmail.com> 1526828841 +0800
committer smile<3293172751nss@gmail.com> 1526828841 +0800
commit message
ไธไธช tag ๆฏๆฅๆ ่ฎฐๆไธไธช commit ็ๆนๆณใ
ๅฎ้
ไธ tag ๆฌ่บซๆฏๆไปถๅ๏ผๅ
ๅฎนๆฏ commit ็ๅฏน่ฑกๅใtag ๆฏ commit ็ๅซๅ๏ผ็ฑปไผผไบๅๅๅ ip ๅฐๅ็ๅ
ณ็ณปใ
$ cat .git/refs/tags/v0.0.0
830f4857e9f579818c5e69104d3e2cc30f1f0d0d
ไปๅพไธๅฏไปฅ็ๅบ๏ผไธไธช commit ๆๅไบไธๆฃต็ฑ tree ๅ blob ๆๆ็ Git ๅฏน่ฑกๆ ใ
Git ไธไฝ ็ๆ็ๅคง้จๅ็ๆฌๆงๅถ็ณป็ป็ๅทฎๅซๆฏๅพๅคง็ใ
ไน่ฎธไฝ ็ๆ SubversionใCVSใPerforceใMercurial ็ญ็ญ๏ผไปไปฌไฝฟ็จ โๅข้ๆไปถ็ณป็ปโ ๏ผDelta Storage systems๏ผ, ๅฐฑๆฏ่ฏดๅฎไปฌๅญๅจๆฏๆฌกๆไบค (commit) ไน้ด็ๅทฎๅผใ
Git ๆญฃๅฅฝไธไน็ธๅ๏ผๅฎไผๆไฝ ็ๆฏๆฌกๆไบค็ๆไปถ็ๅ จ้จๅ ๅฎน๏ผsnapshot๏ผ้ฝไผ่ฎฐๅฝไธๆฅใ
่ฟไผๆฏๅจไฝฟ็จ Git ๆถ็ไธไธชๅพ้่ฆ็็ๅฟตใ
็ปผไธ๏ผGit ๅฏน่ฑกๆจกๅ้ๅธธ็ฎๅ๏ผไธๆฎ้็ๆไปถ็ณป็ป้ๅธธ็็ธไผผใ
ๅๅงๅ็ฎๅฝๅนถๅๅปบไธไธช Git ไปๅบ
$ cd git-obj-model
$ git init
Initialized empty Git repository in /Users/liuyanjie/git-obj-model/.git/
็ไธไธๅๅงๅ็ git ไปๅบไธญๅฐๅบๆไบไปไนๅ ๅฎนใ
$ tree .git
.git
โโโ HEAD
โโโ config
โโโ description
โโโ hooks
โ โโโ applypatch-msg.sample
โ โโโ commit-msg.sample
โ โโโ fsmonitor-watchman.sample
โ โโโ post-update.sample
โ โโโ pre-applypatch.sample
โ โโโ pre-commit.sample
โ โโโ pre-push.sample
โ โโโ pre-rebase.sample
โ โโโ pre-receive.sample
โ โโโ prepare-commit-msg.sample
โ โโโ update.sample
โโโ info
โ โโโ exclude
โโโ objects
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โโโ tags
8 directories, 15 files
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
$ cat .git/HEAD
ref: refs/heads/master
ๆฅ็ไปๅบ็ถๆ
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
ๅ้ขๅฟฝ็ฅ .git/hooks/ ไธ็ๆไปถใ
็ฐๅจๅๅปบไธไธช README.md๏ผๆฅ็ .git ็ฎๅฝ๏ผๅ็ฐๆฒกๆไปไนๅๅใ
$ echo "# Readme" > README.md
$ tree .git
.git
โโโ HEAD
โโโ config
โโโ description
โโโ info
โ โโโ exclude
โโโ objects
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โโโ tags
8 directories, 15 files
ๆฅ็ๅฝๅ็ถๆ๏ผๅฏไปฅ็ๅฐ๏ผๆญคๆถๆไธไธชๆช่ฟฝ่ธช็ README.md ๆไปถ๏ผๆญคๆไปถๅญๅจไบ ๅทฅไฝๅบ ไธญใ
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
ๆง่ก git add ๅฝไปคๅ๏ผๅฏไปฅ็ๅฐๅขๅ ไบไธคไธชๆไปถ๏ผ
- .git/index
- .git/objects/f3/954314c1026028e77ea3a765aadefa67b45195
git add ๆๆไปถๆๅญๅฐ็ดขๅผไธญไธบไธไธๆฌกๆไบคๅๅๅค๏ผgit commit ๅๅปบๆฐ็ๆไบคใ
ๅบ่ฏฅ็ฅ้๏ผ่ฟๅบ่ฏฅๆฏไธไธช blob ็ฑปๅ็ๆไปถ๏ผ้้ขๅญๅจๆไปถๅ
ๅฎนใ
$ git add README.md
$ tree .git
.git
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ objects
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โโโ tags
9 directories, 17 files
ๆฅ็ๅฝๅ็ถๆ
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
ๆฅ็ๅฏน่ฑกๅ ๅฎน
$ git cat-file -p f39543
# Readme
ๆฅ็ๆๅญๅบ
$ git ls-files --stage
100644 f3954314c1026028e77ea3a765aadefa67b45195 0 README.md
.git/index ๆฏ Git ็ดขๅผๆไปถ๏ผๆฏไธไธชๅจ ๅทฅไฝๅบ ๅ ไปๅบ ้ด็ ๆๅญๅบๅ(staging area)ใ
็ดขๅผๆฏไธไธชไบ่ฟๅถๆ ผๅผ็ๆไปถ๏ผ้้ขๅญๆพไบไธๅฝๅๆๅญๅ
ๅฎน็ธๅ
ณ็ไฟกๆฏ๏ผๅ
ๆฌๆๅญ็ๆไปถๅใๆไปถๅ
ๅฎน็SHA1ๅๅธไธฒๅผ ๅ ๆไปถ่ฎฟ้ฎๆ้๏ผๆดไธช็ดขๅผๆไปถ็ๅ
ๅฎนไปฅๆๅญ็ๆไปถๅ่ฟ่กๆ git ls-files โstage ๅบไฟๅญ็ใ
ๅ ไธบ่ฟไธชๆไปถ่ฎฐๅฝไบๅฐ่ฆๆไบค็ๆไปถ๏ผๆไปฅๆไปฌๆ่ฝๅคๅคๆฌกไฟฎๆนไธ่ตทๆไบค (commit)ใ
ๆไปฅๅๅปบไบไธไธชๆฐ็ๆไบค (commit)๏ผๆไบค็ไธ่ฌๆฏๆๅญๅบ้็ๅ ๅฎน๏ผ่ไธๆฏๅทฅไฝ็ฎๅฝไธญ็ๅ ๅฎนใ
ไธไธช Git ้กน็ฎไธญๆไปถ็็ถๆๅคงๆฆๅๆไธ้ข็ไธคๅคง็ฑป๏ผ่็ฌฌไบๅคง็ฑปๅๅไธบไธๅฐ็ฑป๏ผ
- ๆช่ขซ่ท่ธช็ๆไปถ๏ผUntracked files๏ผ
- ๅทฒ่ขซ่ท่ธช็ๆไปถ๏ผTracked files๏ผ
- ่ขซไฟฎๆน ๆชๆๅญ ็ๆไปถ๏ผChanged but not updated ๆ Modified๏ผ
- ่ขซไฟฎๆน ๅทฒๆๅญ ๅฏไปฅ ่ขซๆไบค ็ๆไปถ๏ผChanges to be committed ๆ Staged๏ผ
- ๆชไฟฎๆน ็ๆไปถ๏ผ่ชไธๆฌกๆไบคไปฅๆฅ๏ผ(Clean ๆ Unmodified)
Changes to be committed:
(no files)
Changes not staged for commit:
(no files)
Untracked files:
? .gitignore
ๆง่ก git commit ๅฝไปค๏ผๅ็ฐ่ทฏๅพไธๅๅขๅ ไบไธคไธชๆไปถ๏ผ
- .git/objects/9d/978d59f2f22062c0382c859f4c3ef929026303
- .git/objects/c1/067ba0a7ba51f937518c9bc051ea744ca748fe
ไปไธ้ข็็ปๆๅพ๏ผๅฏไปฅๆณๅฐ๏ผ
ๆไบคๅฏๅฎไผไบง็ไธไธชๆไบคๅฏน่ฑก๏ผๆไบคๅฏน่ฑกๆๅไธไธชๆ ๅฏน่ฑก๏ผๆ ๅฏน่ฑกๅ
ๅซไธไธๆญฅๆทปๅ ็ blob ๅฏน่ฑกใ
ไธ้ขๅฐ้่ฟๆฅ็ๆไปถๅ ๅฎน้ช่ฏ่ฟไธ็นใ
$ git commit -m "First Commmit" README.md
[master (root-commit) 033fa1a] First Commmit
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5 +
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe +
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ master
โโโ tags
14 directories, 23 files
ๆฅ็ 033f ๅฏน่ฑกๅ
ๅฎน๏ผๆญคๆถไธ็ฅ้่ฟไธชๆไปถ็ฑปๅๅๅ
ๅฎนๆฏไปไน
ๆญคๆถ๏ผcommit ๅฏน่ฑกไธบๅๅงๆไบค๏ผๆไปฅๅนถๆ parent ๅผ็จใ
$ git cat-file -p 033f
tree c1067ba0a7ba51f937518c9bc051ea744ca748fe
author smile<3293172751nss@gmail.com> 1527521894 +0800
committer smile<3293172751nss@gmail.com> 1527521894 +0800
First Commmit
ๆฅ็ c106 ๅฏน่ฑกๅ
ๅฎน๏ผ้่ฟไธไธๆญฅ๏ผๅทฒ็ฅๆญคๅฏน่ฑกๆฏไธไธช tree ็ฑปๅ็ๅฏน่ฑก๏ผ้่ฟๅ
ๅฎนๅฏไปฅ็ๅฐ๏ผๆ ็ฑปๅ็ๅฏน่ฑกๅฎ้
ๅฐฑๆฏๅญๅจๆฏ่กไธๆกๆฐๆฎ็ๅ่กจใ
$ git cat-file -p c106
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
ๅ็ .git/refs/heads/master ๆไปถๅ
ๅฎน
ๆไปถๅ
ๅฎนๅชๆไธ่ก๏ผๅ
ๅฎนๆฏ 033f ๅฏน่ฑกใmaster ๅณๆฏ master ๅๆฏ็็ฉ็่กจ็คบใ
$ cat .git/refs/heads/master
033fa1ab71f0d54f348f07a3a0ffcefd52804df5
ๅๆถ๏ผ่ฟๅฏ็ๅฐ๏ผๆฐๅขไบ .git/logs ็ฎๅฝๅๅ
ๅฎน
่ฏฅ็ฎๅฝไธไฟๅญไบๅไธชๅๆฏ็ๆไบค่ฎฐๅฝ
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5
$ cat .git/logs/HEAD
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5
Tag๏ผ
$ git tag v0.0.1 -m 'tag v0.0.1'
ๆฅ็็ฎๅฝๆไปถๅๅ
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe
โ โโโ cc
โ โ โโโ f88a6f1649213499841c33f9bb36d1d8756fb7
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ master
โโโ tags
โโโ v0.0.1
15 directories, 25 files
ๆฅ็ .git/refs/tags/v0.0.1 ๆไปถๅ
ๅฎน๏ผๅฏไปฅ็ๅฐๅ
ๅฎนๆฐๅฅฝๆฏๆฐๅข็ objects ๅฏน่ฑกๅ๏ผๆไปฅๅฏๆณ่็ฅ ccf8 ๆฏไธไธช tag ็ฑปๅ็ๅฏน่ฑก
$ cat .git/refs/tags/v0.0.1
ccf88a6f1649213499841c33f9bb36d1d8756fb7
ๆฅ็ๆฐๅข็ ccf8 ๆไปถๅ
ๅฎน๏ผๆไปถๆๅไบ commit ๅฏน่ฑก 033f
$ git cat-file -p ccf8
object 033fa1ab71f0d54f348f07a3a0ffcefd52804df5
type commit
tag v0.0.1
tag v0.0.1
้่ฟไปฅไธๆฅ็ .git ็ฎๅฝ็ๅๅ่ฟ็จ๏ผๅฏไปฅๅคง่ดๅๆๅบ Git ๆฏๅฆไฝๅญๅจ่ฟไบๆไปถๅ
ๅฎน็ใ
ไธ้ขๅชๆง่กไบ git add ๅ git commit ไธคๆกๆไฝใ
$ echo "# CHANGELOG" > CHANGELOG.md
$ echo "# CONTRIBUTING" > CONTRIBUTING.md
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
CHANGELOG.md
CONTRIBUTING.md
nothing added to commit but untracked files present (use "git add" to track)
$ git add CHANGELOG.md CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: CHANGELOG.md
new file: CONTRIBUTING.md
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5
โ โโโ a0
โ โ โโโ cf709bc0991b5340080f944d02894dc1596d46
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe
โ โโโ c6
โ โ โโโ b9e95b39b8cd8ead8bbf4b118104741017de1b
โ โโโ cc
โ โ โโโ f88a6f1649213499841c33f9bb36d1d8756fb7
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ master
โโโ tags
โโโ v0.0.1
17 directories, 27 files
$ git ls-files --stage
100644 a0cf709bc0991b5340080f944d02894dc1596d46 0 CHANGELOG.md
100644 c6b9e95b39b8cd8ead8bbf4b118104741017de1b 0 CONTRIBUTING.md
100644 f3954314c1026028e77ea3a765aadefa67b45195 0 README.md
ๅๅซๆฅ็ไธไธๅไธชๆไปถ็ๅ ๅฎน
$ git cat-file -p a0cf
# CHANGELOG
$ git cat-file -p c6b9
# CONTRIBUTING
$ git cat-file -p f395
# Readme
ๅๆฅ็ไธไธๆ ๅฏน่ฑก็ๅ ๅฎน๏ผ็ถ่ๅนถๆฒกๆไปปไฝๅๅ
$ git cat-file -p c106
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
ไธ้ขๆไบค่ฟไธคไธชๆไปถ๏ผๅฏไปฅ้่ฟๆฅๅฟๆนไพฟ็ๆฅ็ไฟกๆฏใ
$ git commit --all -m "add CHANGELOG.md and CONTRIBUTING.md files"
[master 28baf4f] add CHANGELOG.md and CONTRIBUTING.md files
2 files changed, 2 insertions(+)
create mode 100644 CHANGELOG.md
create mode 100644 CONTRIBUTING.md
ๅๆ ทๅ็ไธไธ.git ็ฎๅฝไธ็ๅ
ๅฎน
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5
โ โโโ 28
โ โ โโโ baf4f77fb49abf99c18bc1c12363d898f3ced7
โ โโโ 2c
โ โ โโโ affd90cd736e58f516e3988e3af84f5fa42b4f
โ โโโ a0
โ โ โโโ cf709bc0991b5340080f944d02894dc1596d46
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe
โ โโโ c6
โ โ โโโ b9e95b39b8cd8ead8bbf4b118104741017de1b
โ โโโ cc
โ โ โโโ f88a6f1649213499841c33f9bb36d1d8756fb7
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ master
โโโ tags
โโโ v0.0.1
19 directories, 29 files
ๆฅ็ไธไธ master ไธ็ๆไบคๆฅๅฟ๏ผๅๅๆไบคๅ ๅฎนๅจๆฐ็ไธ่ก๏ผไธ้ฆๆฌกๆไบค็จๅพฎๆ็นๅทฎๅซ๏ผ้ฆๆฌกๆไบคๆฏ commit (initial)ใ
่ฟๅฏไปฅๅ็ฐ็ฌฌไบๆฌกๆไบค็็ฌฌไธๅๅ็ฌฌไธๆฌกๆไบค็็ฌฌไบๅไธๆ ท๏ผๅฏไปฅ็ๅฐ๏ผ็ฌฌไธๅๆๅไธไธๆฌก็ๆไบคๅฏน่ฑกใ
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 smile<3293172751nss@gmail.com> 1527521894 +0800 commit (initial): First Commmit
033fa1ab71f0d54f348f07a3a0ffcefd52804df5 28baf4f77fb49abf99c18bc1c12363d898f3ced7 smile<3293172751nss@gmail.com> 1527524452 +0800 commit: add CHANGELOG.md and CONTRIBUTING.md files
ๆฅ็ 28ba
$ git cat-file -p 28ba
tree 2caffd90cd736e58f516e3988e3af84f5fa42b4f
parent 033fa1ab71f0d54f348f07a3a0ffcefd52804df5
author smile<3293172751nss@gmail.com> 1527524452 +0800
committer smile<3293172751nss@gmail.com> 1527524452 +0800
add CHANGELOG.md and CONTRIBUTING.md files
็ธๆฏ 033f๏ผ28ba ๅคไบ parent ๅญๆฎต ไธ parent ๅญๆฎตๅผๆฏ 033f
ๅๆถ master ไนๆๅไบๆฐ็ๆไบคๅฏน่ฑกใ
็ฌฌไธๆฌกไบง็็ๆไบคๅฏน่ฑกๅๆ ทๅญๅจไบ็ฎๅฝๅฝไธญใ
$ cat .git/refs/heads/master
28baf4f77fb49abf99c18bc1c12363d898f3ced7
ๅจ็ๆ ๅฏน่ฑก 2caf๏ผๅ็ฐ็ธๆฏไนๅ๏ผๅคไบไธค่ก๏ผๅๅซๆๅๆฐๅขๅ ็ๆไปถใ
README.md ๆไปถๅบ็ฐๅจไบ 2caf ๅฏน่ฑกไธญ๏ผๅฎ้
ไธ๏ผๅฎๅๆถ่ฟๅญๅจไบ c106 ๅฏน่ฑกไธญใ
$ git cat-file -p 2caf
100644 blob a0cf709bc0991b5340080f944d02894dc1596d46 CHANGELOG.md
100644 blob c6b9e95b39b8cd8ead8bbf4b118104741017de1b CONTRIBUTING.md
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
$ git cat-file -p c106
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
ๅฐ็ฐๅจไธบๆญข๏ผๆดไธช็ฎๅฝไธๆ 3 ไธชๆไปถ๏ผ่ .git ็ฎๅฝไธๅทฒ็ปๆๅคไธชๆไปถ๏ผไธบไบ่ท่ธช่ฎฐๅฝ็ๆฌใ
$ ls
CHANGELOG.md CONTRIBUTING.md README.md
้่ฟไปฅไธ .git ็ฎๅฝๅๅ๏ผๅฏไปฅๅ็ฐ๏ผ
ๆฏๆฌกๆไบค้ฝไผไบงๅบไธ commit ๅฏน่ฑก๏ผ่ฟไบ commit ้่ฟ parent๏ผๅฝขๆไธไธช็ฑ้ซ็ๆฌๅฐไฝ็ๆฌ็้พ่กจ๏ผ่ฟฝๆบฏ่ฟไธช้พ่กจ๏ผๅฏไปฅๅๆบฏๅฐไปปๆ็ๆฌใ
commit ๅฏน่ฑกไฟๅญไธไธช tree ็ๆ น่็น๏ผๆ น่็นไธ้ขๅๅ
ๅซ blob ๆ tree๏ผ็ฑปไผผๆฎ้ๆไปถ็ณป็ป็ปๆ๏ผๅไธ้ข็ๅพไธ่ด๏ผไปๆ น่็นๅผๅง๏ผๅฏไปฅๆพๅฐๆไธ่ฌ็ๆฌไธ็ๆๆๆไปถใ
ๅจๆฏไธ้ขๆ ไธ๏ผๅ ไธบ้ฝๆฏไฝฟ็จ็ฑปไผผๆ้็็ปๆ๏ผๆไปฅๆฏๆฌกไฟฎๆน้ฝๆฏๅฐๅๅ็ๆไปถ๏ผ้ๆฐๅๅปบไธไธช blob ๆไปถ๏ผๅนถไฟฎๆน็ธๅบๆ้ใ
็ฎๅฝไธญ็ .git/refs/heads/master ๆๅๆไธๆฌกๆไบค๏ผๅฝ็ฑๅฆๅคไธไธชๅๆฏ็ๆถๅ๏ผไผๆ .git/refs/heads/branch-xxx ๆไปถๆๅๅฆๅคไธๆฌกๆไบค๏ผ่ๅๅงๆถไธ็ถๅๆฏๆๅ็ธๅใ
$ mkdir lib
$ echo "// Author: liuyanjie" > ./lib/index.js
$ git add lib/index.js
$ git commit -m "add lib/index.js" lib/index.js
[master 2b9fc85] add lib/index.js
1 file changed, 1 insertion(+)
create mode 100644 lib/index.js
$ git cat-file -p 2b9fc85
tree 9609811e44367d44f2915435f4454716e1e535fd
parent 28baf4f77fb49abf99c18bc1c12363d898f3ced7
author smile<3293172751nss@gmail.com> 1527556745 +0800
committer smile<3293172751nss@gmail.com> 1527556745 +0800
add lib/index.js
$ git cat-file -p 9609
100644 blob a0cf709bc0991b5340080f944d02894dc1596d46 CHANGELOG.md
100644 blob c6b9e95b39b8cd8ead8bbf4b118104741017de1b CONTRIBUTING.md
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
040000 tree 2fb9045bb558889ea2bd8cc5d8fe45e7247706da lib
$ git cat-file -p 2fb9
100644 blob 39a204af28de9b4f0411735e597e0da7416ca35a index.js
ไธ้ข่ฟ็ปญๅ ๆญฅๅไนๅ็ๆๆไธๆ ท๏ผไฝๆฏๅฏไปฅ็ๅฐ๏ผๅจๆ ๅฏน่ฑก 9609 ไธญ๏ผๅ
ๅซไบๅฆไธไธชๆ ๅฏน่ฑก 2fb9 ๏ผ่ฟไธชๅฏน่ฑก็ๅ
ๅฎนๆๅ index.js ๆไปถใ
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 smile<3293172751nss@gmail.com> 1527521894 +0800 commit (initial): First Commmit
033fa1ab71f0d54f348f07a3a0ffcefd52804df5 28baf4f77fb49abf99c18bc1c12363d898f3ced7 smile<3293172751nss@gmail.com> 1527524452 +0800 commit: add CHANGELOG.md and CONTRIBUTING.md files
28baf4f77fb49abf99c18bc1c12363d898f3ced7 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527556745 +0800 commit: add lib/index.js
git log๏ผ
commit 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 (HEAD -> master)
Author: smile<3293172751nss@gmail.com>
Date: Tue May 29 09:19:05 2022 +0800
add lib/index.js
commit 28baf4f77fb49abf99c18bc1c12363d898f3ced7
Author: smile<3293172751nss@gmail.com>
Date: Tue May 29 00:20:52 2022 +0800
add CHANGELOG.md and CONTRIBUTING.md files
commit 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 (tag: v0.0.1)
Author: smile<3293172751nss@gmail.com>
Date: Mon May 28 23:38:14 2022 +0800
First Commmit
ๅๅปบๅนถๅๆขๅฐๅๆฏ feature-a
$ git branch -v
* master 2b9fc85 add lib/index.js
$ git checkout -b feature-a
Switched to a new branch 'feature-a'
# liuyanjie @ bmw in ~/git-obj-model on git:feature-a o [9:25:01]
$ git branch -v
* feature-a 2b9fc85 add lib/index.js
master 2b9fc85 add lib/index.js
$ git status
On branch feature-a
nothing to commit, working tree clean
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ config
โโโ description
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ feature-a
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5
โ โโโ 28
โ โ โโโ baf4f77fb49abf99c18bc1c12363d898f3ced7
โ โโโ 2b
โ โ โโโ 9fc8524bac21d5d5c2f988b5793315ce93abc6
โ โโโ 2c
โ โ โโโ affd90cd736e58f516e3988e3af84f5fa42b4f
โ โโโ 2f
โ โ โโโ b9045bb558889ea2bd8cc5d8fe45e7247706da
โ โโโ 39
โ โ โโโ a204af28de9b4f0411735e597e0da7416ca35a
โ โโโ 96
โ โ โโโ 09811e44367d44f2915435f4454716e1e535fd
โ โโโ a0
โ โ โโโ cf709bc0991b5340080f944d02894dc1596d46
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe
โ โโโ c6
โ โ โโโ b9e95b39b8cd8ead8bbf4b118104741017de1b
โ โโโ cc
โ โ โโโ f88a6f1649213499841c33f9bb36d1d8756fb7
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ feature-a
โ โโโ master
โโโ tags
โโโ v0.0.1
23 directories, 35 files
็ไธไธ.git ๆไปถๅ
ๅฎน๏ผๅฏไปฅ็ๅฐ.git/refs/heads ็ฎๅฝไธๅคไบไธช feature-a
ๆฅ็ไธไธ feature-a ็็ธๅ
ณๅ
ๅฎน๏ผๆๅ็ๆไบคๅฏน่ฑกๅ master ไธๆ ท๏ผๅนถๆๆ Created from HEADใ
ไปๅ
ๅฎนไธญๅฏไปฅ็ๅบ๏ผไธคไธชๅๆฏๆๅๅไธไธชๆไบคๅฏน่ฑก 1ad0e5๏ผไฝๆฏไธคไธชๅๆฏ็ๆฅๅฟไธๅใ
ๆฅๅฟ่ฎฐๅฝไบๅๆฏ็ๅๅฒ๏ผ่ๆไบคๅฏน่ฑก่ฎฐๅฝไบๅๆฏ็ๆฐๆฎๅ ๅฎนๅๆๆๅๆฏ็ๅๅฒใ
$ cat .git/refs/heads/feature-a
2b9fc8524bac21d5d5c2f988b5793315ce93abc6
$ cat .git/refs/heads/master
2b9fc8524bac21d5d5c2f988b5793315ce93abc6
$ cat .git/logs/refs/heads/feature-a
0000000000000000000000000000000000000000 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527557101 +0800 branch: Created from HEAD
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 smile<3293172751nss@gmail.com> 1527521894 +0800 commit (initial): First Commmit
033fa1ab71f0d54f348f07a3a0ffcefd52804df5 28baf4f77fb49abf99c18bc1c12363d898f3ced7 smile<3293172751nss@gmail.com> 1527524452 +0800 commit: add CHANGELOG.md and CONTRIBUTING.md files
28baf4f77fb49abf99c18bc1c12363d898f3ced7 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527556745 +0800 commit: add lib/index.js
ๅๅงๅ package.json
$ npm init
Is this ok? (yes)
ๅฎ่ฃ
bluebird
$ npm install bluebird --save
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN git-obj-model@1.0.0 No description
npm WARN git-obj-model@1.0.0 No repository field.
+ bluebird@3.5.1
added 1 package in 1.999s
ๆทปๅ ๆไปถๅฐ็ๆฌๅบ๏ผๅนถๆฅ็ๅๅใ
$ git add package.json
$ cat .git/refs/heads/feature-a
2b9fc8524bac21d5d5c2f988b5793315ce93abc6
$ cat .git/refs/heads/master
2b9fc8524bac21d5d5c2f988b5793315ce93abc6
ๆไบคๆไปถๅฐ็ๆฌๅบ๏ผๅนถๆฅ็ๅๅ๏ผๆไบคๆ้ๅทฒ็ปๆๅๆฐ็ๆไบคๅฏน่ฑก๏ผๅๆฏ็็ๆฌ่ถ
ๅไบ master๏ผๅ ไธบ parent ๆๅ 1ad0e5
$ git commit package.json -m 'add package.json'
[feature-a 74ce192] add package.json
1 file changed, 17 insertions(+)
create mode 100644 package.json
$ cat .git/refs/heads/master
2b9fc8524bac21d5d5c2f988b5793315ce93abc6
$ cat .git/refs/heads/feature-a
74ce19245be785772b33e1193df0d2c6a940ed10
$ git cat-file -p 74ce
tree 9d23f8ad2ecc9f8e49d78174bcc6e4668ca7f031
parent 2b9fc8524bac21d5d5c2f988b5793315ce93abc6
author smile<3293172751nss@gmail.com> 1527557656 +0800
committer smile<3293172751nss@gmail.com> 1527557656 +0800
add package.json
$ git cat-file -p 9d23
100644 blob a0cf709bc0991b5340080f944d02894dc1596d46 CHANGELOG.md
100644 blob c6b9e95b39b8cd8ead8bbf4b118104741017de1b CONTRIBUTING.md
100644 blob f3954314c1026028e77ea3a765aadefa67b45195 README.md
040000 tree 2fb9045bb558889ea2bd8cc5d8fe45e7247706da lib
100644 blob 5ee275ce022007c38d187c58aef13f8d9e04b553 package.json
ๅๅนถๅๆฏ feature-a ๅฐ master ๅๆฏ๏ผๅฏไปฅ็ๅฐ master ๅๆฏ่ทไธไบ feature-a๏ผๅชๆนๆ้ๆขๅฏ๏ผ้ๅธธๅฟซใ
$ git checkout master
Switched to branch 'master'
$ git merge feature-a --no-ff
Merge made by the 'recursive' strategy.
package.json | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 package.json
$ cat .git/refs/heads/master
b98c36254dba6e169429c2be57b1bbeccb6e1f28
$ cat .git/refs/heads/feature-a
74ce19245be785772b33e1193df0d2c6a940ed10
$ tig
2022-05-29 09:37 liuyanjie Mโโ [master] Merge branch 'feature-a'
2022-05-29 09:34 liuyanjie โ o [feature-a] add package.json
2022-05-29 09:19 liuyanjie oโโ add lib/index.js
2022-05-29 00:20 liuyanjie o add CHANGELOG.md and CONTRIBUTING.md files
2022-05-28 23:38 liuyanjie I <v0.0.1> First Commmit
ไฟฎๆน master ๅๆฏ๏ผ็ผ่พๆไปถๅนถๆไบค
$ git checkout master
Already on 'master'
$ echo -e "\n\n# About" >> README.md
$ git commit README.md -m "add About Me"
[master cc52745] add About Me
1 file changed, 4 insertions(+)
$ cat README.md
# Readme
# About
ไฟฎๆน feature-a ๅๆฏ
$ git checkout feature-a
Switched to branch 'feature-a'
$ cat README.md
# Readme
$ echo -e "\n\n# About" >> README.md
$ cat README.md
# Readme
# About
$ git add README.md
$ git commit README.md -m "add About Me"
[feature-a fd885cf] add About Me
1 file changed, 3 insertions(+)
ๆฅ็ๅๆฏๅคดๅๅๅฒ่ฎฐๅฝ๏ผๅฏไปฅ็ๅฐๅๆฏๅคดๆๅไธๅ็ๆไบคๅฏน่ฑก๏ผ่ๆไบคๅฏน่ฑก๏ผๅๆฅๆบไบๅไธไธชๆไบคๅฏน่ฑก 0cb214741c044af3fb4677fe72e3ae175f3e0358๏ผไธคไธชๅๆฏไน้ดๅญๅจไบคๅใ
$ cat .git/refs/heads/feature-a
74ce19245be785772b33e1193df0d2c6a940ed10
$ cat .git/refs/heads/master
cc52745b13b00c672c7ac9b1dc42336953293b7a
$ cat .git/logs/refs/heads/feature-a
0000000000000000000000000000000000000000 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527557101 +0800 branch: Created from HEAD
2b9fc8524bac21d5d5c2f988b5793315ce93abc6 74ce19245be785772b33e1193df0d2c6a940ed10 smile<3293172751nss@gmail.com> 1527557656 +0800 commit: add package.json
74ce19245be785772b33e1193df0d2c6a940ed10 fd885cfcd548a24fabb2f5b49ea60beadc8c5912 smile<3293172751nss@gmail.com> 1527558668 +0800 commit: add About Me
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 smile<3293172751nss@gmail.com> 1527521894 +0800 commit (initial): First Commmit
033fa1ab71f0d54f348f07a3a0ffcefd52804df5 28baf4f77fb49abf99c18bc1c12363d898f3ced7 smile<3293172751nss@gmail.com> 1527524452 +0800 commit: add CHANGELOG.md and CONTRIBUTING.md files
28baf4f77fb49abf99c18bc1c12363d898f3ced7 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527556745 +0800 commit: add lib/index.js
2b9fc8524bac21d5d5c2f988b5793315ce93abc6 b98c36254dba6e169429c2be57b1bbeccb6e1f28 smile<3293172751nss@gmail.com> 1527557853 +0800 merge feature-a: Merge made by the 'recursive' strategy.
b98c36254dba6e169429c2be57b1bbeccb6e1f28 cc52745b13b00c672c7ac9b1dc42336953293b7a smile<3293172751nss@gmail.com> 1527558514 +0800 commit: add About Me
ๅๆขๅฐ master ๅๆฏ๏ผๅๆฌกๅๅนถ feature-a ๅฐ master
$ git checkout master
Switched to branch 'master'
$ git merge feature-a
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
$ cat README.md
# Readme
<<<<<<< HEAD
## About
=======
## About
>>>>>>> feature-a
่งฃๅณๅฒ็ชไนๅ็ๆไปถ
$ cat README.md
# Readme
## About
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: README.md
$ git commit README.md -m 'fix conflict'
fatal: cannot do a partial commit during a merge.
$ git commit -a
[master 5a68c74] Merge branch 'feature-a'
$ cat .git/refs/heads/feature-a
fd885cfcd548a24fabb2f5b49ea60beadc8c5912
$ cat .git/refs/heads/master
5a68c7402c30ae44fd82dadba2d8f148efb75541
$ cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 033fa1ab71f0d54f348f07a3a0ffcefd52804df5 smile<3293172751nss@gmail.com> 1527521894 +0800 commit (initial): First Commmit
033fa1ab71f0d54f348f07a3a0ffcefd52804df5 28baf4f77fb49abf99c18bc1c12363d898f3ced7 smile<3293172751nss@gmail.com> 1527524452 +0800 commit: add CHANGELOG.md and CONTRIBUTING.md files
28baf4f77fb49abf99c18bc1c12363d898f3ced7 2b9fc8524bac21d5d5c2f988b5793315ce93abc6 smile<3293172751nss@gmail.com> 1527556745 +0800 commit: add lib/index.js
2b9fc8524bac21d5d5c2f988b5793315ce93abc6 b98c36254dba6e169429c2be57b1bbeccb6e1f28 smile<3293172751nss@gmail.com> 1527557853 +0800 merge feature-a: Merge made by the 'recursive' strategy.
b98c36254dba6e169429c2be57b1bbeccb6e1f28 cc52745b13b00c672c7ac9b1dc42336953293b7a smile<3293172751nss@gmail.com> 1527558514 +0800 commit: add About Me
cc52745b13b00c672c7ac9b1dc42336953293b7a 5a68c7402c30ae44fd82dadba2d8f148efb75541 smile<3293172751nss@gmail.com> 1527559277 +0800 commit (merge): Merge branch 'feature-a'
$ git merge --stat feature-a
Already up to date.
$ git branch -d feature-a
Deleted branch feature-a (was fd885cf).
$ git branch
$ git cat-file -p fd88
tree 82e47e13f87031cab7c47b455744bc4ed3fdba3c
parent 74ce19245be785772b33e1193df0d2c6a940ed10
author smile<3293172751nss@gmail.com> 1527558668 +0800
committer smile<3293172751nss@gmail.com> 1527558668 +0800
add About Me
$ git cat-file -p 5a68
tree 42564bab966d59e3501a1903c1cb2066adc2bd2d
parent cc52745b13b00c672c7ac9b1dc42336953293b7a
parent fd885cfcd548a24fabb2f5b49ea60beadc8c5912
author smile<3293172751nss@gmail.com> 1527559277 +0800
committer smile<3293172751nss@gmail.com> 1527559277 +0800
Merge branch 'feature-a'
$ git log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
* 5a68c74 - (HEAD -> master) Merge branch 'feature-a' (7 minutes ago) <liuyanjie>
|\
| * fd885cf - add About Me (17 minutes ago) <liuyanjie>
* | cc52745 - add About Me (20 minutes ago) <liuyanjie>
* | b98c362 - Merge branch 'feature-a' (31 minutes ago) <liuyanjie>
|\ \
| |/
| * 74ce192 - add package.json (34 minutes ago) <liuyanjie>
|/
* 2b9fc85 - add lib/index.js (49 minutes ago) <liuyanjie>
* 28baf4f - add CHANGELOG.md and CONTRIBUTING.md files (10 hours ago) <liuyanjie>
* 033fa1a - (tag: v0.0.1) First Commmit (11 hours ago) <liuyanjie>
้ ็ฝฎๅฝไปคๅซๅ
$ git config --global alias.lg "log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
git lg
$ git tag -a v0.0.2 -m "v0.0.2"
v0.0.1
v0.0.2
$ cat .git/refs/tags/v0.0.2
174c530154ab3b4d4d322bcbd66cdde18882eb00
$ git cat-file -p 174c
object 5a68c7402c30ae44fd82dadba2d8f148efb75541
type commit
tag v0.0.2
tagger smile<3293172751nss@gmail.com> 1527559851 +0800
v0.0.2
$ git cat-file -p 5a68
tree 42564bab966d59e3501a1903c1cb2066adc2bd2d
parent cc52745b13b00c672c7ac9b1dc42336953293b7a
parent fd885cfcd548a24fabb2f5b49ea60beadc8c5912
author smile<3293172751nss@gmail.com> 1527559277 +0800
committer smile<3293172751nss@gmail.com> 1527559277 +0800
Merge branch 'feature-a'
$ tree .git
.git
โโโ COMMIT_EDITMSG
โโโ HEAD
โโโ ORIG_HEAD
โโโ co.gitup.mac
โ โโโ cache.db
โ โโโ info.plist
โ โโโ snapshots.data
โโโ config
โโโ description
โโโ hooks
โ โโโ applypatch-msg.sample
โ โโโ commit-msg.sample
โ โโโ fsmonitor-watchman.sample
โ โโโ post-update.sample
โ โโโ pre-applypatch.sample
โ โโโ pre-commit.sample
โ โโโ pre-push.sample
โ โโโ pre-rebase.sample
โ โโโ pre-receive.sample
โ โโโ prepare-commit-msg.sample
โ โโโ update.sample
โโโ index
โโโ info
โ โโโ exclude
โโโ logs
โ โโโ HEAD
โ โโโ refs
โ โโโ heads
โ โโโ master
โโโ objects
โ โโโ 03
โ โ โโโ 3fa1ab71f0d54f348f07a3a0ffcefd52804df5
โ โโโ 17
โ โ โโโ 4c530154ab3b4d4d322bcbd66cdde18882eb00
โ โโโ 28
โ โ โโโ baf4f77fb49abf99c18bc1c12363d898f3ced7
โ โโโ 2b
โ โ โโโ 9fc8524bac21d5d5c2f988b5793315ce93abc6
โ โโโ 2c
โ โ โโโ affd90cd736e58f516e3988e3af84f5fa42b4f
โ โโโ 2f
โ โ โโโ b9045bb558889ea2bd8cc5d8fe45e7247706da
โ โโโ 30
โ โ โโโ be8054b61a4a124e4cd8a1201de8474cb45e12
โ โโโ 39
โ โ โโโ a204af28de9b4f0411735e597e0da7416ca35a
โ โโโ 42
โ โ โโโ 564bab966d59e3501a1903c1cb2066adc2bd2d
โ โโโ 44
โ โ โโโ 2b821b9b4acb5b0e632042542b3b29e2cf721e
โ โโโ 48
โ โ โโโ 1cab7467cdb697bf7affdba0f2a5673a03366d
โ โโโ 5a
โ โ โโโ 68c7402c30ae44fd82dadba2d8f148efb75541
โ โโโ 5e
โ โ โโโ e275ce022007c38d187c58aef13f8d9e04b553
โ โโโ 74
โ โ โโโ ce19245be785772b33e1193df0d2c6a940ed10
โ โโโ 82
โ โ โโโ e47e13f87031cab7c47b455744bc4ed3fdba3c
โ โโโ 96
โ โ โโโ 09811e44367d44f2915435f4454716e1e535fd
โ โโโ 9d
โ โ โโโ 23f8ad2ecc9f8e49d78174bcc6e4668ca7f031
โ โโโ a0
โ โ โโโ cf709bc0991b5340080f944d02894dc1596d46
โ โโโ b9
โ โ โโโ 8c36254dba6e169429c2be57b1bbeccb6e1f28
โ โโโ c1
โ โ โโโ 067ba0a7ba51f937518c9bc051ea744ca748fe
โ โโโ c6
โ โ โโโ b9e95b39b8cd8ead8bbf4b118104741017de1b
โ โโโ cc
โ โ โโโ 52745b13b00c672c7ac9b1dc42336953293b7a
โ โ โโโ f88a6f1649213499841c33f9bb36d1d8756fb7
โ โโโ f3
โ โ โโโ 954314c1026028e77ea3a765aadefa67b45195
โ โโโ fd
โ โ โโโ 885cfcd548a24fabb2f5b49ea60beadc8c5912
โ โโโ info
โ โโโ pack
โโโ refs
โโโ heads
โ โโโ master
โโโ tags
โโโ v0.0.1
โโโ v0.0.2
36 directories, 51 files
.git/HEAD ๆๆไบๅฝๅๆดป่ทๅๆฏๆฏๅชไธชๅๆฏ
$ cat .git/HEAD
ref: refs/heads/master




