git-我从哪里分支?

我回到了一个旧项目,然后运行了git status来弄清楚发生了什么,并且我发现分支太多了! 我想先做一些内部整理工作,然后再开始进行此工作,但是我不确定哪个分支来自哪个分支。

例如。 “ branchA”是否源自“ develop”? “ branchB”是源自“ master”还是“ branchA”?

我如何回答上面的示例问题?

Marsellus Wallace asked 2020-07-22T23:36:38Z
7个解决方案
28 votes

git merge-base显示的提交是两个分支的共同祖先。

简单用法:git merge-base <branch> <branch>显示了两个分支的共同提交。

patthoyts answered 2020-07-22T23:37:24Z
19 votes

由于分支只是DAG中某些提交的指针,因此没有规范的答案。 例如,gitkfoo可能指向同一提交; 如果您随后从foo创建分支,则实际上与从master创建分支相同。

就是说,如果您可视化提交图(通过gitk或某些其他图形历史记录工具),则可以大致了解分支点在提交图中的位置以及各个分支指针所指向的位置。

Amber answered 2020-07-22T23:37:00Z
2 votes

如果您使用Windows或Linux(带有GUI),则只需安装漂亮的git-extensions。 他们可以完美地可视化分支/合并树。

[HTTP://code.Google.com/怕/git extensions/downloads/detail?那么=git extensions207.zip&惨=4&请=]

问候,

Mario Fraiß answered 2020-07-22T23:37:53Z
2 votes

如果您已经在一个分支上,则可以从另一个分支(例如master)得到该分支的提交,如下所示:

git merge-base --fork-point master
Cory Klein answered 2020-07-22T23:38:13Z
1 votes

您可以使用图形树查看器,尽管大多数时候我使用命令行进行实际工作,但我使用gitg查看分支和差异。

Not_a_Golfer answered 2020-07-22T23:38:33Z
1 votes

遵守命名约定,避免所有混乱。

master创建分支(例如,要实现电子邮件功能)时,可以将其命名为master_emailfeature。然后,如果需要从该分支创建子分支以为电子邮件实现ssl,则可以将其命名为master_emailfeature_sslandtls

通过查看分支的名称,就可以清楚地知道是从哪个分支创建的。

Basil Musa answered 2020-07-22T23:39:02Z
0 votes

如果您想弄清楚您的本地分支来自哪个远程分支,此命令可以使您有所了解。

git remote show origin

向下滚动,直到看到“为'git pull'配置的本地分支:”,然后在其下显示所有本地分支的列表,每个远程分支将与之合并。

Jake Levsen answered 2020-07-22T23:39:26Z
translate from https://stackoverflow.com:/questions/9898093/where-did-i-branch-from