我似乎无法git log --branches正确过滤其输出.似乎Git忽略了它.
例如git log --graph --all --decorate,打印头:
* commit 3ae0d17538f787bdde68f37f6644ffe9652d8dc1 (HEAD, feature/branch-ignore)
| Author: Chris Lewis <chris@chris.to>
| Date: Mon Mar 14 17:39:56 2011 -0700
|
| Ignore merge commits, as they're going to be duplicating events
|
* commit 770534e9d77acb03eaf842440c879aec1c5b5500
| Author: Chris Lewis <chris@chris.to>
| Date: Tue Mar 8 14:39:40 2011 -0800
|
| Removed another remote branch check
|
Run Code Online (Sandbox Code Playgroud)
假设我想过滤master,这应该意味着忽略这些提交.的负责人git log --graph --all --decorate --branches=master还是:
* commit 3ae0d17538f787bdde68f37f6644ffe9652d8dc1 (HEAD, feature/branch-ignore)
| Author: Chris Lewis <chris@chris.to>
| Date: Mon Mar 14 17:39:56 2011 -0700
|
| Ignore merge commits, as they're going to be duplicating events
|
* commit 770534e9d77acb03eaf842440c879aec1c5b5500
| Author: Chris Lewis <chris@chris.to>
| Date: Tue Mar 8 14:39:40 2011 -0800
|
| Removed another remote branch check
|
Run Code Online (Sandbox Code Playgroud)
Git似乎没有过滤.是否--branches与其他参数一起传递似乎没有任何区别.我的Git版本是git version 1.7.4.1.有谁知道如何成功使用此命令?
编辑:我想要做的就是获取一个或另一个分支的日志,而不必先进行结账.
Ada*_*ers 15
首先,(另一个)亚当是正确的,因为它没有意义--all:如果你只想看到一个像你的问题状态的分支,为什么要求所有分支?
其次,正如其他答案的评论中所述,你不需要--branches; 只是做git log mybranch.
第三,我可以解释为什么git log --branches=mybranch不起作用.该git-log(1)手册页说:
--branches[=<pattern>]
Pretend as if all the refs in refs/heads are listed on
the command line as <commit>. If <pattern> is given,
limit branches to ones matching given shell glob. If
pattern lacks ?, *, or [, /* at the end is implied.
Run Code Online (Sandbox Code Playgroud)
最后一句是关键点.如果<pattern>就在mybranch那时没有通配符,那么git-log就像你输入的那样解释它
git log --branches=mybranch/*
Run Code Online (Sandbox Code Playgroud)
它只匹配下面的引用$repo/.git/refs/heads/mybranch/*,即以开头的分支mybranch/.
有一个肮脏的黑客来阻止/*假设:
git log --branches=[m]ybranch
Run Code Online (Sandbox Code Playgroud)
但是我想不出有什么理由要你这么做而不仅仅是打字
git log mybranch
Run Code Online (Sandbox Code Playgroud)
Ada*_*ruk 13
因为您指定了--all,所以覆盖您所做的任何分支规范.
假设你的历史看起来像这样
d -- e [refs/tags/release1]
/
a -- b -- c [refs/heads/master]
\
f -- g [refs/heads/dev1]
\
h [refs/heads/dev2]
Run Code Online (Sandbox Code Playgroud)
如果你这样做git log --branches是一样的git log master dev1 dev2,所以你会看到提交 a,b,c,f,g 和 h。如果你这样做了,git log release1 --branches=dev*它与git log release1 dev1 dev2. 您会看到 a、d、e、b、f、g 和 h,但不会看到 c。
| 归档时间: |
|
| 查看次数: |
31083 次 |
| 最近记录: |