2011-09-28 128 views
4

如何查看特定分支的历史记录?分支的跟踪历史

我一直在创建和合并分支机构。但是,在一个特定分支上例如说new_feature。我想知道已经合并到这个分支的历史,以及创建了哪个分支?

原因是我有这个new_feature分支,我想知道其他分支合并到了什么分支,new_feature是从哪个分支制成的?

我对使用任何GUI工具(可能是某些命令行)并不感兴趣。 我使用Git版本1.7.5.4和Ubuntu 11.10。

回答

1

git log --oneline --graph --all可能会给你你想要的,而不需要第三方工具。

  • --oneline使提交仅显示在一行上,而不是更长的默认格式。
  • --graph显示带有ASCII字符的分支/合并历史记录。
  • --all显示历史中的所有分支,而不仅仅是当前的分支。
+1

这也是非常有用的。 git log --decorate = full – ant2009

+0

有一天我会浏览所有的git手册页。那么多隐藏的宝石。 (好吧,也许这将需要超过一天...) –

+0

应该是'--all'而不是'-all' – zihaoyu

1

我经常使用tig,它是Git的文本模式存储库浏览器。但是,Git附带的gitk程序对于查看存储库历史记录也很有用,因为有时分支之间的界限会变得非常复杂,并且在GUI工具中更容易看到。

对于低级历史记录,git reflog命令将显示导致当前(或指定)分支头移动的所有操作。

3

您只能看到合并提交与git log --merges。只要你没有混淆你的合并提交信息,你就会看到你合并了哪些分支。 (如果您不想使用HEAD作为起点,请提供提交/分支/标记作为参数。)使用其他选项按照您的喜好调整输出 - 请参阅手册页。您可能喜欢--oneline(单行提交摘要)或甚至--pretty=%s(仅打印提交主题)。你也可能喜欢--first-parent,它只遵循合并的第一个父母,阻止它从合并分支报告提交。

了解什么分支的分支开始从有点棘手 - 这不是真正的信息被记录。您可能会发现它作为git reflog <branch>输出中的第一个(底部)条目,如果它足够近的话。