Git当前分支提交列表

时间:2014-10-31 08:04:05

标签: git

当您在Github或Stash中执行Pull Request时,您将获得当前分支的提交列表。

获取构成当前分支的提交列表的git命令是什么,而不指定我们从哪个分支的名称开始?

3 个答案:

答案 0 :(得分:0)

您通常需要知道您来自哪个分支,以便列出特定于当前分支的提交,正如我在" Git log to get commits only for a specific branch"

中所解释的那样

否则,您需要排除不属于您的分支的提交(suggesteddimirc):

git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch")

或者更简单,使用git merge-base(如果您的分支as in this question上的HEAD ):

git log $(git merge-base HEAD branch)..branch

答案 1 :(得分:0)

在git中,如果没有指定要排除的引用,则无法仅列出特定分支的提交。

但您可以以编程方式确定引用,这样的命令可能如下所示:

git log HEAD $(git branch -a | grep -v "^*" | grep -v "\->" | sed "s/^ /--not /")

为了便于使用,您可以定义别名:

git config --global alias.branchlog '!git log HEAD $(git branch -a | grep -v "^*" | grep -v "\->" | sed "s/^ /--not /")'

然后只需输入git branchlog

即可使用它

注意:如果您要忽略remote分支机构,则必须从-a电话中移除git branch -a选项。


此命令将记录所有只能从当前 HEAD 访问的提交。它通过列出所有分支(git branch -a),从结果中删除当前分支以及远程 HEAD grep -v "^*"grep -v "\->")来实现此目的。 在最后一步中,它会为每个分支添加--not,以告知git log排除此引用

注意:远程 HEAD 看起来像remote/origin/HEAD -> remote/origin/master并且与git log混在一起。

如果您手动输入命令,它可能如下所示:

git log HEAD --not master --not origin/master

答案 2 :(得分:0)

  

更改您当前的git分支

     

git branch - >列出回购中的分支( * 表示您在该分支中,您的提交将在此分支下)   如果你想看到任何分支的提交那么

     

git checkout branchname - >更改要查看提交的分支

     

git log - >将向您展示分支下的提交