是否有可能只在git中看到特定分支中的提交?

时间:2010-10-23 13:04:43

标签: git

通常'git log'显示所有对当前点有贡献的提交,即使那些来自分支的提交合并到当前分支中。

是否可以发出命令以仅查看特定分支中的提交?也就是说,如果有一个集成分支,其中所有内容都在发货之前合并,是否有任何git命令只能查看该分支中的那些提交?

3 个答案:

答案 0 :(得分:5)

这(您已经知道)指定了从集成可以访问的提交集:

g log integration

“^”操作可用于通过此提交(rev)无法访问的所有内容。例如,通过集成可以访问的所有内容都排除了master可以访问的所有内容:

g log ^master integration

通用的简写(整合但不是主人):

g log master..integration

您可以使用多个排除说明符(集成但不能使用master或devel):

g log ^master ^devel integration

希望这足以满足您的需求。此信息位于指定修订指定范围部分的man git-rev-parse中。

答案 1 :(得分:1)

这应该有效:

git checkout <branch>
git diff master <commit just before the merge to master>

应该有一种方法可以在合并到master之前自动获取提交的名称,这样就可以将其转换为宏或别名。

另外,请查看git log -p -m --first-parent文档中提到的git help log;它可能会做类似的事情。

答案 2 :(得分:0)

我不完全确定。在git中分支的想法只是指向树中位置的指针(不是像svn等那样完全独立的开发线)。

然而,您可以执行git分支--no-merged以查看需要将哪些分支集成到当前分支中。

我想我可以编写一些能够为你提供所有提交的东西,这些提交只有当前HEAD后面的 而不是其他地方。我不知道怎么回事。