运行 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
括号里面的内容我没看懂是什么意思。括号内的文字是什么意思?这是提交基于的分支吗?如果是,HEAD -> master
、origin/master
和 origin/HEAD
有什么区别?
如何解读git日志中的括号?
最佳答案
简答
它是指向相应提交的指针列表。我建议你阅读 HEAD
和 origin
.
提交和指针
在git
,您有提交和指针在这些提交之间移动。分支只是指向提交的指针。假设你有一个分支 mybranch
, 然后 mybranch
只是一个指针。如果您在该分支上提交,指针 mybranch
继续进行该提交。
HEAD 指针
HEAD
: HEAD
指针指向您的仓库所在的当前提交。在您的情况下,它指向提交 69b6309f09365c09a2fe10f09aee801d1fae29ee
,即:您的仓库现在正在提交 69b6309f09365c09a2fe10f09aee801d1fae29ee
.括号中的内容是指向与 HEAD
相同的提交的其他指针的列表。 ,在你的例子中是 master
和 edeviserBranch
.从该信息中,您可以看到 master
和 edeviserBranch
还没有分歧。您可能使用文本 added foo
推送了最后一次提交到 master
然后创建了一个新分支 edeviserBranch
来自 master
.
工作区
origin
: 默认名称 git
给你的远程仓库。与 origin/<pointer>
,您可以访问工作区域中的分支机构。工作区是本地和远程存储库之间的空间。 git fetch origin
将远程仓库中的数据下载到本地仓库的工作区。它不 merge 任何数据,它只是下载它。举例说明工作区的概念:
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
原点/HEAD指针
origin/HEAD
: 工作区中的指针,指向默认提交,克隆您的存储库的人将检查该提交。
根据git log
的输出, 指针 origin/master
和 origin/HEAD
都指向提交 59a08270fb730db259a8d5819bb585a613024d97
.
如果你的工作区域与你的远程仓库不同步,你执行git fetch origin
(这样做,您使用远程存储库更新您的工作区域),这些指针将会改变。
关于git - 如何解释git日志中的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753595/