HEAD是当前分支的指针.我已经看到了HEAD祖先的各种符号,包括
HEAD~2
HEAD^2
HEAD@{2}
HEAD~~
HEAD^^
上述每一个意味着什么?这方面的文件在哪里?
Tim*_*Tim 70
来自这里的文档.
HEAD~2
:2提交比HEAD更早HEAD^2
:HEAD的第二个父母,如果HEAD是合并,否则是非法的HEAD@{2}
:指的是概述中的第3个清单 git reflog
HEAD~~
:2提交比HEAD更早HEAD^^
:2提交比HEAD更早如果HEAD是合并,那么
一些组合和同义词
First Parent First Grandparent Second Parent Second Grandparent
HEAD~
HEAD^
HEAD~1 HEAD~2 HEAD^2 HEAD^2~
HEAD^1 HEAD^^ HEAD^2^
Run Code Online (Sandbox Code Playgroud)
我计算每个~
或^
意思是“回到一个级别”。如果~
(例如~n
)旁边有一个数字,则 n 充当乘数。如果^
(例如^n
)旁边有一个数字,则 n 是要使用的第 n 个父项(或从 中从左到右列位置的横向移动git log --graph
)。
例子:
$ git log --oneline --graph
* 29392c8 (HEAD -> master, tag: A) A
|\
| * a1ef6fd (tag: C) C
| |
| \
*-. \ 8ae20e9 (tag: B) B
|\ \ \
| | |/
| | * 03160db (tag: F) F
| | |\
| | | * 9df28cb (tag: J) J
| | * 2afd329 (tag: I) I
| * a77cb1f (tag: E) E
* cd75703 (tag: D) D
|\
| * 3043d25 (tag: H) H
* 4ab0473 (tag: G) G
Run Code Online (Sandbox Code Playgroud)
以上标签的坐标:
A = = A^0
B = A^ = A^1 = A~1
C = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
Run Code Online (Sandbox Code Playgroud)
该git log --online --graph
输出使得它很难看到其提交都在同一水平线上,所以这里是另一个演示文稿(其中“A”是最新的提交及以上的提交是在顶部):
G H I J
\ / \ /
D E F
\ | / \
\ | / |
\|/ |
B C
\ /
\ /
A
Run Code Online (Sandbox Code Playgroud)
(插图摘自Git 中 HEAD^ 和 HEAD~ 的区别是什么?)。
归档时间: |
|
查看次数: |
10015 次 |
最近记录: |