HEAD
HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。
当进行新的提交时,HEAD 就会自动向前移动,指向这个新提交。
进入 main 分支中并运行 git log
,可以看到提交记录:
$ git checkout main
$ git log
commit 0961e2e4fb7b9c92c67bfe3936b8fb8793e1d4ed (HEAD -> main)
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:09:29 2024 +0800
第二次修改iss53
commit d556a63e53dfef1f1aa74a0e196cd31abaa79e5c
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:08:18 2024 +0800
修改iss53
commit 9f5bfba20b0448961111fe1cc621187b461284c4
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:00:55 2024 +0800
修改hotfix
commit ca5ebf0f7e0438c514b9039594e86b6bc1ef64e2
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Tue Jan 30 16:24:42 2024 +0800
:
HEAD 默认指向当前分支上的最后一次提交,如果在尾部加上一个 ^
,即 HEAD^
指向上一次提交:
$ git show HEAD^
commit d556a63e53dfef1f1aa74a0e196cd31abaa79e5c
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:08:18 2024 +0800
修改iss53
diff --git a/README.md b/README.md
index 7027fce..b2752eb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
-// hello
\ No newline at end of file
+// hello
+// word
\ No newline at end of file
(END)
另一种方法是 ~
,HEAD~
和 HEAD^
是等价的,指向上一次提交。
区别在~
后面加数字的时候, HEAD~2
代表 “上一次提交的上一次提交”:
$ git show HEAD~2 # 也可以写成 HEAD^^
commit 9f5bfba20b0448961111fe1cc621187b461284c4
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:00:55 2024 +0800
修改hotfix
diff --git a/README.md b/README.md
index e69de29..7027fce 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+// hello
\ No newline at end of file
(END)
哈希值
0961e2e4fb7b9c92c67bfe3936b8fb8793e1d4ed
等就是提交的哈希值,用来唯一标识这次提交。
如果想通过哈希值获得对应的提交,只需要提供前几个字符就可以:字符数量不得少于 4 个,通常 7 到 10 个字符。
$ git show 9f5bfba
commit 9f5bfba20b0448961111fe1cc621187b461284c4
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Wed Feb 21 16:00:55 2024 +0800
修改hotfix
diff --git a/README.md b/README.md
index e69de29..7027fce 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+// hello
\ No newline at end of file
(END)