首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个git日志输出显示两个分支,好像它们不是分支一样?请解释一下

这个git日志输出显示两个分支,好像它们不是分支一样?请解释一下
EN

Stack Overflow用户
提问于 2021-12-06 22:36:17
回答 1查看 186关注 0票数 2

feature/XY是功能分支的名称,目前正在签出。feature/XY-refactor是另一个分支的名称,它是从feature/XY分支而来的。

当我运行git log --oneline时,我会得到下面的输出。在日志输出的最顶端,这两个是对的,这是什么意思呢?我在Windows上使用git bash。

代码语言:javascript
复制
user@host ~/Documents/repo (feature/XY)
$ git log --oneline
9feb11a (HEAD -> feature/XY, origin/feature/XY) Axis labels
d250b90 (feature/XY-refactor) Refactored
87d49c1 Fix typoe
6a8a7c7 Fix print statement
945ffca Fix code layout
3e747c9 Added spaces after comma
b143713 Changed fontsize
a669cd4 Commented out a print statement
// .. more commits
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-06 22:55:24

git log将返回所有可从特定提交或一组提交中到达的提交(即,直到指定提交的历史记录)。当您不指定提交时,它默认为HEAD

因此,您有效地运行了git log --oneline HEAD,这相当于git log --oneline feature/XY (签出分支)。

因此,您的git log结果告诉您,您的feature/XY分支将feature/XY-refactor分支的最后提交作为其父分支(如果9feb11a是合并提交,则为其父分支之一)。换句话说,feature/XY-refactor分支已经以某种方式合并到feature/XY中。

git log按时间顺序显示了提交的列表,但没有显示它们之间的确切关系。要查看这一点,请使用--graph开关,它特别适用于--oneline

代码语言:javascript
复制
git log --oneline --graph

例如,如果feature/XY-refactor在提交3e747c9上分支,然后在对feature/XY进行任何单独的工作之前与feature/XY合并,那么您将看到以下内容:

代码语言:javascript
复制
$ git log --oneline --graph

* 9feb11a (HEAD -> feature/XY, origin/feature/XY) Axis labels
|\
| * d250b90 (feature/XY-refactor) Refactored
| * 87d49c1 Fix typoe
| * 6a8a7c7 Fix print statement
| * 945ffca Fix code layout
|/
* 3e747c9 Added spaces after comma
* b143713 Changed fontsize
* a669cd4 Commented out a print statement
// .. more commits

或者,如果将feature/XY重定向到feature/XY-refactor,您将看到以下内容:

代码语言:javascript
复制
$ git log --oneline --graph

* 9feb11a (HEAD -> feature/XY, origin/feature/XY) Axis labels
* d250b90 (feature/XY-refactor) Refactored
* 87d49c1 Fix typoe
* 6a8a7c7 Fix print statement
* 945ffca Fix code layout
* 3e747c9 Added spaces after comma
* b143713 Changed fontsize
* a669cd4 Commented out a print statement
// .. more commits

当您使用--graph时,它可能会重新排序提交以生成一个更清晰的图形。

git log --graph有一个缺陷:当您有两个或多个不共享公共根提交的单独提交历史时,这一点并不明显。但基于你所说的,这不太可能是你的案子。

无论如何,您总是可以通过将它作为arg提供给git log来查看任何特定参考文献或“逗号”的历史。尝试以下命令:

代码语言:javascript
复制
git log --oneline --graph feature/XY
git log --oneline --graph feature/XY-refactor
git log --oneline --graph HEAD
git log --oneline --graph 6a8a7c7

如果您想了解两个或多个分支是如何关联的:

代码语言:javascript
复制
git log --oneline --graph <branch a> <branch b> ...

如果您想查看所有分支:

代码语言:javascript
复制
git log --oneline --graph --all

另外,还有一个更详细的git log命令,显示日期、时间和作者:

代码语言:javascript
复制
git log --graph --pretty=format:'%C(yellow)%h%Creset %Cgreen(%cd) %C(bold blue)<%an>%Creset %C(red)%d%Creset %s' --all
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70252806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档