跟踪一个分支的历史记录

5

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

我一直在创建和合并分支。但是有一个特定的分支,比如说new_feature。我想知道已经合并到这个分支中的内容以及它是从哪个分支创建的。

原因是我有这个new_feature分支,我想知道还有哪些分支合并到了它,并且new_feature分支是从哪个分支创建的?

我不太想使用任何GUI工具,也许可以在命令行上完成。 我正在使用Git版本1.7.5.4和Ubuntu 11.10。

3个回答

3

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

  • --oneline 使提交记录仅显示一行,而不是默认格式的较长信息。
  • --graph 用ASCII字符展示分支/合并历史。
  • --all 显示历史中的所有分支,而不仅仅是当前分支。

1
这也非常有用。git log --decorate=full - ant2009
总有一天我会浏览所有的Git手册页面。有太多隐藏的宝藏。(好吧,也许需要更多时间……) - Andrew Marshall
应该使用 --all 而不是 -all - zihaoyu
谢谢你发现了这个问题,我已经修复了。 - Andrew Marshall

3
您可以使用git log --merges命令查看合并提交。只要您没有修改合并提交消息,您将看到哪些分支已经被合并。(如果您不想使用HEAD作为起点,请提供一个提交/分支/标签作为参数。)使用其他选项对输出进行调整,具体请参见man页面。您可能会喜欢--oneline(一行提交摘要),甚至--pretty=%s(仅打印提交主题)。您还可能喜欢--first-parent,它只跟随合并的第一个父级,防止报告来自合并分支的提交。
确定一个分支从哪个分支“开始”有点棘手-这不是真正记录的信息。如果是最近的话,您可能会在git reflog <branch>输出的第一个(底部)条目中找到它。

2
我经常使用 tig,它是Git的文本模式仓库浏览器。然而,随Git一起提供的 gitk 程序也很有用,因为有时分支之间的线条会变得非常复杂,使用GUI工具更容易查看。
对于低级历史记录,git reflog 命令将显示导致当前(或指定)分支头移动的所有操作。

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