Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:装饰所有由“提交”显示的提交;git日志--全部";有分支机构名称_Git - Fatal编程技术网

Git:装饰所有由“提交”显示的提交;git日志--全部";有分支机构名称

Git:装饰所有由“提交”显示的提交;git日志--全部";有分支机构名称,git,Git,首先,git log--graph--oneline--decoration不是我想要做的 我经常运行git log-p--all-G模式,我希望能看到已进行更改的分支名称。有没有办法做到这一点 这可能是一个不适定的问题,因为据我所知,Git没有明确记录提交的分支的名称,而且当我们有多个分支时,我们无法唯一地将回购中的第一个分支与之关联。试试这个。您可以自定义--pretty format来设置颜色、交换输出值等 $ git log -p --all -G pattern --pretty=f

首先,
git log--graph--oneline--decoration
不是我想要做的


我经常运行
git log-p--all-G模式
,我希望能看到已进行更改的分支名称。有没有办法做到这一点


这可能是一个不适定的问题,因为据我所知,Git没有明确记录提交的分支的名称,而且当我们有多个分支时,我们无法唯一地将回购中的第一个分支与之关联。

试试这个。您可以自定义
--pretty format
来设置颜色、交换输出值等

$ git log -p --all -G pattern --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --branches
$git log-p--all-G模式--pretty=格式:'%Cred%h%Creset-%C(黄色)%d%Creset%s%Cgreen(%cr)%C(粗体蓝色)%Creset%n'--分支

通过此命令,您可以看到
提交哈希
分支名称
提交消息
时间
提交者名称
提交的更改
尝试此操作。您可以自定义
--pretty format
来设置颜色、交换输出值等

$ git log -p --all -G pattern --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --branches
$git log-p--all-G模式--pretty=格式:'%Cred%h%Creset-%C(黄色)%d%Creset%s%Cgreen(%cr)%C(粗体蓝色)%Creset%n'--分支
通过此命令,您可以查看提交哈希、分支名称、提交消息、时间、提交者名称和提交的更改

这可能是一个不适定的问题,因为据我所知,Git没有明确记录提交的分支的名称,当我们有多个分支时,我们不能唯一地将回购中的第一个分支与之关联

没错

根本的问题是,分支名称(如果有)可能没有,例如,如果您处于“分离头”模式,则分支名称不属于提交的一部分。此外,可以在提交后的任何时间添加、更改和删除分支名称,以便任何给定的提交都可以在没有、一个或多个分支上进行,并且包含分支的集合会动态更改

这与大多数版本控制系统形成鲜明对比。例如,在Mercurial中,进行提交的分支的名称是提交的一部分。该提交永远在该分支上,并且永远不会在任何其他分支上。每次提交都只在一个分支上,很容易将提交ID转换为分支名称。在Git中,提交在零个或多个分支上,当它在多个分支上时,它同时在所有分支上

因此,在Git中,分支名称以及标记名称和所有其他引用(包括
HEAD
本身)基本上是无关的,除了一个关键点:引用是我们(和Git)进入提交图的方式。每个提交Git对象的标识,实际上是它丑陋的SHA-1散列。该唯一ID在存储库中定位对象。引用分支和标记名,主要是让我们从图中开始,然后每个提交都有一个对其父级的引用,或者通过其原始ID对其多个父级的多个引用

正如,
git branch--contains
将查找可访问某些git对象的名称。Git的
日志
具有
%d
%d
格式,它们执行
--decoration
所做的操作,但它们只显示哪些引用直接指向正在显示的提交,而
-G regex
只选择添加或删除与给定regex.1匹配的行的提交,因此如果您有这样的图片段:

...-o--o--*--o   <-- branch1
     \
      o--o--*    <-- branch2
…-o--o--*--o
这可能是一个不适定的问题,因为据我所知,Git没有明确记录提交的分支的名称,当我们有多个分支时,我们不能唯一地将回购中的第一个分支与之关联

没错

根本的问题是,分支名称(如果有)可能没有,例如,如果您处于“分离头”模式,则分支名称不属于提交的一部分。此外,可以在提交后的任何时间添加、更改和删除分支名称,以便任何给定的提交都可以在没有、一个或多个分支上进行,并且包含分支的集合会动态更改

这与大多数版本控制系统形成鲜明对比。例如,在Mercurial中,进行提交的分支的名称是提交的一部分。该提交永远在该分支上,并且永远不会在任何其他分支上。每次提交都只在一个分支上,很容易将提交ID转换为分支名称。在Git中,提交在零个或多个分支上,当它在多个分支上时,它同时在所有分支上

因此,在Git中,分支名称以及标记名称和所有其他引用(包括
HEAD
本身)基本上是无关的,除了一个关键点:引用是我们(和Git)进入提交图的方式。每个提交Git对象的标识,实际上是它丑陋的SHA-1散列。该唯一ID在存储库中定位对象。引用分支和标记名,主要是让我们从图中开始,然后每个提交都有一个对其父级的引用,或者通过其原始ID对其多个父级的多个引用

正如,
git branch--contains
将查找可访问某些git对象的名称。Git的
日志
具有
%d
%d
格式,它们执行
--decoration
所做的操作,但它们只显示哪些引用直接指向正在显示的提交,而
-G regex
只选择添加或删除与给定regex.1匹配的行的提交,因此如果您有这样的图片段:

...-o--o--*--o   <-- branch1
     \
      o--o--*    <-- branch2

…-o--o--*--o您可以使用
git分支--contain