GIT - 我从哪里开始分支?

时间:2012-03-27 21:37:11

标签: git branch git-branch

我回到了一个旧项目,然后我运行了很好的git status来弄清楚发生了什么,我注意到分支太多了!我想在开始处理之前做一些家务,但我不确定哪个分支来自哪个......

E.G。 “branchA”是否来源于“发展”? “branchB”是否来自“master”或“branchA”??

我如何回答上述示例问题?

9 个答案:

答案 0 :(得分:26)

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

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

答案 1 :(得分:17)

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

也就是说,如果您可视化提交图(通过gitk或其他图形历史记录工具),您可以大致了解提交图中分支点的位置,而不是各种分支指针的位置。指示。

答案 2 :(得分:2)

如果您使用的是Windows或Linux(使用GUI),只需安装漂亮的git-extensions即可。他们可以很好地将您的分支/合并树可视化。

http://code.google.com/p/gitextensions/downloads/detail?name=GitExtensions207.zip&can=4&q=

问候,

答案 3 :(得分:2)

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

git merge-base --fork-point master

答案 4 :(得分:1)

您可以使用图形树查看器,我使用gitg来查看分支和差异,尽管我大部分时间都在使用命令行进行实际工作。

答案 5 :(得分:1)

坚持命名惯例,免除所有困惑。

master创建分支时 - 假设要实现电子邮件功能 - 您可以将其命名为master_emailfeature。然后,如果您需要从此分支创建子分支以实现电子邮件的ssl,则可以将其命名为master_emailfeature_sslandtls

通过查看分支的名称,可以清楚地创建了哪个分支。

答案 6 :(得分:0)

如果你想弄清楚你的本地分支派生自哪个远程分支,这个命令可以解释一下。

git remote show origin

向下滚动,直到您看到&#34;本地分支机构配置为&#39; git pull&#39;:&#34;在其下方,显示所有本地分支的列表,并且远程分支将合并。

答案 7 :(得分:0)

命令行git可执行文件还具有显示分支和合并的基本树的功能,请使用--graph选项设置git log。您可以使用其他选项对其进行各种出色的增强。尝试以下尺寸:

最简单:git log --graph

好:git log --graph --decorate --simplify-by-decoration --color --oneline --date = local

全部费用:git log --graph --decorate --simplify-by-decoration --color --oneline --date = local --pretty = format:'%C(auto)%h%d% C(reset)%s(%C(cyan)%ad%ae%C(reset))'

答案 8 :(得分:0)

正如其他人提到的那样,没有规范的答案,但是INSERT INTO table2 (First, Last, Address...) SELECT `COL 1` as First, `COl 2` as Last, `COl 3` as Address FROM table1; 在某些情况下可以通过显示您的本地git历史记录来提供帮助:

git reflog

在这种情况下,我可以看到我从a1b2c3d4 (HEAD -> my_current_working_branch) HEAD@{0}: pull origin master: Merge made by the 'recursive' strategy. aaaa1111 (origin/my_current_working_branch) HEAD@{1}: commit: Added bar def123aa (forgotten_branch) HEAD@{2}: checkout: moving from forgotten_branch to my_current_working_branch 分支到forgotten_branch,并合并了my_current_working_branch

它不会总是为您提供所需的信息,但是在某些情况下可以提供帮助。

相关问题