如何理解`git log --all --graph --oneline --decorate`的图形输出?

Tim*_*Tim 4 git

跑步时 git log --all --graph --oneline --decorate,提交名称后面括号中的文本是什么意思?

例如

在此处输入图片说明

用于为字符串着色的颜色(蓝色、绿色、红色和黄色)分别是什么意思?任何其他可以使用但未在此处显示的颜色?

有什么作用 ->意思?

什么/之间origin,要么B...staging是什么意思?

在输出的第一行,

  • 确实HEAD -> B...意味着分支的头部B...指向承诺?
  • 什么origin/B...意思?

在输出的第 5 行

  • 确实tag: 1...意味着类似于HEAD -> B...在第一线?
  • 什么 staging绿色是意思?
  • 在这一行中用逗号分隔的三个字符串,而第一行中只有两个字符串是什么?

在输出的第 6 行

  • 为什么这里只有一个字符串,少于第一行和第五行?

谢谢。

sen*_*rio 5

它的大量问题^_^。

插入语

括号中的文本表示标签、分支和 HEAD 指针(如果存在)以及您的工作目录是否在此处。每次git checkout SOMETHING在标签、分支或只是提交哈希的地方运行时,您都会更改 HEAD 指针(您的工作)。

颜色

颜色取决于您的终端配置我有这些颜色:

  • 紫色用于藏匿
  • 红色代表远程分支
  • 本地分支和标签的白色粗体
  • 黄色用于提交消息

在你的图像中我看到

  • 红色代表远程分支
  • 当地分行红色
  • 黄色粗体标记
  • 黄色用于提交哈希

->

只是一个指针。HEAD -> 45g24g42t表示您的 HEAD(您的工作目录提交 45g24g42t。

起源/bla

例如,每次克隆一个项目时,您都可以看到:

* 3G245GV (HEAD -> 3G245GV, foo, origin/foo)
Run Code Online (Sandbox Code Playgroud)

这意味着您的本地分支foo与远程foo分支位于同一点。通常遥控器被命名为origin. 如果您进行提交,您可以在计算机中看到如下内容:

* G54G23F (HEAD -> G54G23F, foo)
* 3G245GV (origin/foo)
Run Code Online (Sandbox Code Playgroud)

这意味着您的本地分支比 origin/foo 领先。这意味着您应该推送您的提交。

就这样

有些问题是多余的,但如有必要,我会改进这个答案。