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

时间:2017-04-21 18:04:16

标签: git

运行git log --all --graph --oneline --decorate时,提交名称后括号中的文字是什么意思?

例如

enter image description here

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

->是什么意思?

/originB...之间的staging是什么意思?

在输出的第一行,

  • HEAD -> B...是否意味着分支B...的HEAD指向提交?
  • origin/B...是什么意思?

在输出的第5行

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

在输出的第6行

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

感谢。

2 个答案:

答案 0 :(得分:3)

它有很多问题^ _ ^。

括号

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

颜色

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

  • 紫色用于藏匿
  • red for remote branches
  • 白色大胆的本地分支和标签
  • 黄色用于提交消息
我在图片中看到

  • red for remote branches
  • red for local branches
  • 黄色粗体标签
  • 黄色用于提交哈希

- >

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

起源/ BLA

每次克隆项目时,您都可以看到:

* 3G245GV (HEAD -> 3G245GV, foo, origin/foo)

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

* G54G23F (HEAD -> G54G23F, foo)
* 3G245GV (origin/foo)

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

多数人

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

答案 1 :(得分:1)

在git中,分支基本上是提交的指针。HEAD也是指向您已签出的当前分支的指针。

所以HEAD-> B03701仅表示当前您在B03701分支上。所以->表示HEAD指针指向的位置

快照中的红色表示您的远程分支。此处的原点/登台意味着我们远程上的登台分支指向ee8f77d提交。这里的来源仅表示远程存储库

而绿色表示您的本地分支,因此绿色暂存是您创建的本地分支,它也指向ee8f77d,这表示您在暂存分支上执行的最后一次提交是ee8f77d

因此在括号内,用逗号分隔的文本表示指针(分支是指针)指向的位置。因此,指向一个特定提交的指针可能不止一个,或者可能为0