如何解释git日志中的括号?

eDe*_*ser 9 git command-line

运行git log给我这样的输出:

commit 69b6309f09365c09a2fe10f09aee801d1fae29ee (HEAD -> master, edeviserBranch)
Author: eDeviser <eDeviser@xyz.com>
Date:   Mon Sep 2 09:53:07 2019 +0200

    added foo

commit 59a08270fb730db259a8d5819bb585a613024d97 (origin/master, origin/HEAD)
Author: eDeviser <eDeviser@xyz.com>
Date:   Mon Sep 2 09:49:50 2019 +0200

    More Text
Run Code Online (Sandbox Code Playgroud)

我不明白括号内内容的含义。括号内的文字是什么意思?这是提交所基于的分支吗?HEAD -> master如果是,和origin/master之间有什么区别origin/HEAD

如何解释git日志中的括号?

MFn*_*Fnx 11

简短回答

它是指向相应提交的指针列表。我建议您阅读有关HEAD和 的内容origin

提交和指针

在 中git,您有提交和在这些提交之间移动的指针。分支只是一个指向提交的指针。假设你有一个分支mybranch,那么mybranch它只是一个指针。如果您在该分支上提交,指针mybranch就会移至该提交。

HEAD 指针

HEADHEAD指针指向您的存储库所在的当前提交。在您的情况下,它指向 commit 69b6309f09365c09a2fe10f09aee801d1fae29ee,即:您的存储库现在处于 commit 状态69b6309f09365c09a2fe10f09aee801d1fae29ee。括号中的内容是其他指针的列表,这些指针指向与 相同的提交HEAD,在您的情况下是masteredeviserBranch。从这些信息中,你可以看到masteredeviserBranch还没有出现分歧。您可能将带有文本的最后一次提交推added foo送到master,然后edeviserBranch从中创建了一个新分支master

工作区

origingit:为远程存储库提供的默认名称。通过origin/<pointer>,您可以访问工作区域中的分支机构。工作区域是本地存储库和远程存储库之间的空间。git fetch origin将数据从远程存储库下载到本地存储库的工作区域。它不合并任何数据,只是下载数据。一个清楚工作区概念的例子:

git fetch origin # update data from remote origin.
# For example, your remote branch edeviserBranch will be downloaded to your working area
# and can be accessed from origin/edeviserBranch.

git checkout master # go to your local master branch
git merge origin/edeviserBranch # merge branch edeviserBranch from your working area
# to your local master branch
Run Code Online (Sandbox Code Playgroud)

原点/HEAD指针

origin/HEAD:工作区域中的一个指针,指向将由克隆您的存储库的人检出的默认提交。

根据输出git log,指针origin/masterorigin/HEAD都指向 commit 59a08270fb730db259a8d5819bb585a613024d97

如果您的工作区域与远程存储库不同步,并且您执行git fetch origin(并且这样做,您使用远程存储库更新您的工作区域),那么这些指针将会更改。

  • 很多很多(实际上是我发现的所有)引用使用“工作目录”或“工作树”或“工作区域”来表示我们本地计算机上与 .git 位于同一文件夹中的文件和文件夹,当然不在其中/下.git 至于获取的原始文件/文件夹。我还没有找到该空间的良好名称的文档,但有人称它们为本地远程 (3认同)
  • 我同意,实际上我有一段时间也这样做了。但如果我没有记错的话,我认为工作区域是由 git doc 的早期版本在这个答案中描述的(不确定)。本地远程还是很清楚的。 (2认同)

su3*_*158 1

HEAD 记住分支位置 HEAD->master 是你工作的地方

当前分支的最新提交 如果移动(签出)分支,HEAD 位置将会改变

你所在远程仓库的位置remotes/origin/HEAD->origin/master //HEAD位置