如何查看git分支的父分支

5

我从一个已有的分支创建了一个新的分支,但是我现在并不记得那个原始分支的名称。有没有人知道如何找到你的分支是从哪个分支创建的?


在gitk中看一下怎么样? - Frank Osterfeld
3个回答

2
这将仅显示您分支中唯一的提交以及您从其分支出或合并到当前分支的任何提交。当前分支所分支的提交将以前导符号o而不是*列出。
git log --decorate --oneline --graph --boundary HEAD \
   --not --exclude=$(git rev-parse --symbolic-full-name HEAD) --glob=refs/*

样例输出:

* 493aaed (HEAD, my-branch) Fixed Typo
o 012788f (master) Merged in release/1.1.1

请注意,如果原始分支也有进展,基础提交可能不再与分支相关联。在这种情况下,您需要执行以下命令来确定哪些分支与该提交分叉。

git branch -a --contains <boundary-commit> 

在上述情况下,边界提交是012788f。

非常感谢!如果有人只想要分支名称,可以执行以下命令:git log --decorate --oneline --graph --boundary HEAD --not --exclude=$(git rev-parse --symbolic-full-name HEAD) --glob=refs/* | grep -e '^o' | sed 's/^.* (\(.*\)).*/\1/' - Sam Hasler
这似乎不再起作用了...我没有输出...至少在我正在尝试的 Windows 上的 MINGW64 shell 中... - TheStoryCoder

2

我认为这个问题的正确答案应该是:

git show-branch --list

2
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
这实际上不是对问题的回答,因为问题是关于弄清楚分支历史中它最初是从哪里创建的,而您的命令只显示有关分支的当前信息。 - joanis

-3

看一下git文档比在Stack Overflow上更快地给你答案,但既然你在这里,试试这个:

git log --graph --decorate

它将打印您的提交历史,同时显示使您到达当前位置的分支拓扑。如果您想查看具有所有分支的历史记录,还可以添加--all标志。


这并不是真的,该命令提供了一个分支拓扑结构,以便您可以知道分支的父级。例如,尝试从主分支的分支创建一个分支。经过一些提交后,您会发现该命令没有任何线索。 - Pedro García Medina
我该如何仅获取父分支的名称? - alper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接