Git Master缺少什么内容?

Git Master缺少什么内容?,git,Git,我可以通过执行以下操作来检查特定提交进入了哪些分支: git branch --contains 469bcec 我是否可以得到提交未进入特定分支的内容 例如,我是否可以检查哪些提交没有进入Master 谢谢我不知道您是否可以在一个命令中完成所有分支(无需脚本),但对于特定分支,您可以执行以下操作: git log master..mybranch 此列表列出了mybranch上存在的所有修订版,这些修订版不在master上 也可以在同一命令上使用多个分支: git log master..

我可以通过执行以下操作来检查特定提交进入了哪些分支:

git branch --contains 469bcec
我是否可以得到提交未进入特定分支的内容

例如,我是否可以检查哪些提交没有进入Master


谢谢

我不知道您是否可以在一个命令中完成所有分支(无需脚本),但对于特定分支,您可以执行以下操作:

git log master..mybranch
此列表列出了
mybranch
上存在的所有修订版,这些修订版不在
master

也可以在同一命令上使用多个分支:

git log master..mybranch1 master..mybranch2

为了简单起见,您还可以添加
--oneline
选项,并省略您所在的当前分支(假设您位于主分支上):


这至少接近您想要的-不确定是否完全匹配:

git log --pretty=oneline --all --not master

没有办法指定“回购协议中的所有提交,不管标签如何”(好吧,在内部,这就是
git fsck
查找“悬空提交”的方式),但您无论如何都不会希望这样,因为它会查找“临时的、非分支的”提交,例如
refs/stash
及其reflog中的提交

还不清楚是否要包括或排除通过
refs/remotes/
命名的提交,例如(“远程分支”),或通过标记命名的提交。但是,一般来说,这样做的方法是从开始,它使用
语法:
EXC..INC
INC的意思相同,而不是EXC
,即从“include”点
INC
开始的所有可到达的提交减去从“exclude”点
EXC
开始的所有提交。如果包含点是分支
devel
,排除点是
master
,则这是“on
devel
”而不是“on
master
”的提交列表。(您可以省略任意一方来表示“使用
”,因此
.master
表示“包括
,排除
”,这意味着“此分支上的所有提交都不在

使用扩展表单,可以请求从多个起始“包含”点可访问的所有提交,减去从“排除”点可访问的提交。因此:

git log featureA featureB --not master
获取两个功能分支上不在
master
中的所有内容

但是,如果您想要“本地分支”,有一种直接的方法:
git rev list
有一个
--branchs
参数。使用
--branchs
意味着“所有本地分支”“。您可以添加
=pattern
以仅拾取与某些shell样式模式匹配的分支,例如,
--branchs='feature*”
以拾取分支
featureA
featureB
,等等,但不拾取分支
devel

将这些输入到使用
git rev list
的任何命令,包括
git log

$ git log --oneline --graph --decorate --branches --not master
标签和遥控器也有类似的
git rev list
参数,还有
--glob
,允许您访问完整的引用名称空间。提供
--all
(如中)意味着与
--glob=*
相同,即在
refs
名称空间中包含所有引用,其中包括
refs/stash
,并不总是您想要的内容

(还有最后一个语法技巧:你可以用
^master
拼写
--not master
。这与使用
--not
有细微的不同:
--not
翻转一个布尔标志,该标志适用于所有后续名称,而前导的
^
只适用于它的一个项目;因此
--not rel1 rel2
意味着与
^rel1^rel2
相同。请注意
^commit
commit^
非常不同。啊,git.:-)

另一种方式:git 1.9/2.0(2014年第1季度)将包含一个新的
--exclude
选项,带有:

人们经常希望有一种方法来告诉“
git-log-branchs
”(和“
git-log-remotes-not-branchs
”)以将一些本地分支从“
--branchs
”的扩展中排除出去(类似于“
--tags
”、“
--all
”和“
--glob glob=/code>”)
现在他们有了

现在提到的是:

--exclude=<glob-pattern>::
--排除=::

不包括REFS匹配“<代码> <代码> >下一个代码>所有< <代码> >代码>分支<代码> >代码>标签,<代码>远程> <代码>或<代码> -GLUB将另行考虑。 重复此选项会将排除模式累积到下一个

--all
--branchs
--tags
--remotes
--glob
选项(其他选项或参数不会清除累积模式)

当应用于
--分支机构
--标记
--所有
时,给出的模式不应分别以
引用/头
引用/标记
--远程
开头,并且它们必须以
引用
开头 如果要使用尾随“
/{asterisk}
”,则必须明确给出它


要获取不存在提交的所有分支:
diff多么密集的答案。
--exclude=<glob-pattern>::