我可以获得Git Repo的漂亮记录图::
git log --all --graph --decorate
这显示了与每个提交相关的分支和标签(如果有)。
同样,我可以查看存储库中任何文件的提交历史图:
git log --all --graph --decorate foobar.cpp
但这并未显示每个提交中附加的分支和标签。
有没有办法在文件的git日志中显示分支和标签?
这是一个简单的存储库,有3个提交,2个分支(master 和 feature1). readme1.txt 在所有3个提交中都进行了修改。 readme2.txt 在第一次提交中添加了,之后未触及。
存储库的git日志显示分支名称和 HEAD:
git日志 readme1.txt 显示分支名称和 HEAD:
但是,git日志 readme2.txt 既不显示分支名称也不显示 HEAD:
一个提交 readme2.txt 应该同时具有分支名称和 HEAD 也。那是因为如果我结帐 master 或者 feature1 分支,我会得到这个承诺 readme2.txt。在现实世界中,您可以想象这可能是如何有用的,知道文件的提交属于哪个分支。
如何获取GIT日志以显示此文件的那些分支名称?
您可以尝试使用 --source --branches,但是这里有一个问题。
作为 Elpiekay在评论中指出,这里的问题是分支或标签没有指向 直接到 定期的提交。值得记住的是,吉特(Git)的分支和标签名称充当指针,指向一个不变的图,本身包含指针。也就是说,首先我们有图形本身:
<--o <--o <--o <--o
^ ^
\ \
o <--o <--o
每个地方 o 是一个提交节点,每个箭头都是一个单向弧连接到某些前身节点的节点。 (这里最低,最正确的节点有两个传出弧,所以它是一个 合并提交.)
在该图的顶部,我们添加了一些外部箭头,导致一些节点,我们将调用它们 分支 或者 标签。分支名称是可以是可变的(可变的)指针,而标签名称则是不变的:
v1.0
|
v
<--o <--o <--o <--o <--develop
^ ^
\ \
o <--o <--o <--master
这 --decorate 选项告诉 git log 那就是,当它打印图中一个节点的哈希ID时, 如果 该节点有一些指向它的“外部箭头”, git log 应该打印其名称(在括号中,被逗号隔开)。
当您使用文件名参数时,您会告诉 git log: 仅打印那些提交节点,其中该提交的父和该提交本身之间的差异表示文件已修改。 (您还打开Git称呼的 历史简化,以后很重要。)通过抑制具有这些外部箭头的提交节点的打印输出,您也可以抑制装饰。
git确实提供了 --source 选项 git log,但这有点有限。什么 --source DIS是修改图形步行算法,以便对于每个最初访问的提交节点,它记得在此特定节点中带来的命令行分支或标记参数。这可能是 HEAD,或一个分支或标签名称,可能是从 --branches 或者 --all 或类似的论点。然后,当它通过其队列工作时 - 由于合并引起“行走叉”,修订步行代码将每个图节点放在队列中,并以某种顺序漫步,由您指定的任何拓扑排序选项确定 - 收到相同的副本,源注释到每个访问的节点中。
假设我们将大写字母名称名称名称为上图中的每个节点:
v1.0
|
v
<--A <--B <--C <--G <--develop
^ ^
\ \
D <--E <--F <--master
现在假设您使用 --decorate --source --branches --tags (或者 --decorate --source --all),使git从节点开始 A, G, 和 F “同时”。
节点 A 从标签到达 v1.0, 所以是 --source 是 v1.0。节点 G 从分支名称到达 develop, 所以是 --source 是 develop。节点 F 从分支名称到达 master, 所以是 --source 是 master。现在我们开始图形步行。
首先访问哪个节点?这很难说。实际上,git使用任何节点的最高 提交时间戳。 (如果有领带,git任意使用这些节点。)我们在这里看不到提交时间戳 G:我们先访问那个。 (请注意,即使您自己在一台计算机上进行这些提交,也可以将您喜欢的任何时间戳记到任何提交中。 )
打印节点 G,我们将看到 --source 的 develop 和装饰 (develop)。这插入节点 C 进入队列 G的来源,即 develop.
如果我们访问 F 首先,而不是 G 首先,我们将用一个 --source 的 master 和装饰 (master)。这将插入节点 C 进入队列 F的来源,即 master!
简而言之 二 我们到达节点的方法 C 和 B: 通过 develop 或通过 master。当我们使用时 git log --source 我们会看到 一 这两个,但我们不一定知道 哪一个。限制是只有一个 --source 归因。附有的任何来源 C但是,同一来源将附加到 B。(同时节点 E 和 D 只能获得 master 作为他们的来源。)
有 三 达到节点的方法 A,因为标签;但是我们会看到的 v1.0 就像它一样 --source 当那个标签进入 git log矩节点的数据结构 A 进入队列。(这些 --source 注释仅在 git log 运行:它们从未写回存储库。)如果步行开始访问节点之前 A,他们会复制这个 v1.0 作为他们的来源。
请注意,节点仅输入图形步行列表一次。 节点的初始列表是由命令行参数形成的(或使用 HEAD 如果您没有提供起点)。之后,访问节点插入所有孩子,除非已经拜访了这些孩子。每当列表中有多个节点时,下一个要访问的节点都会通过是否使用 --author-date-order, --date-order, 或者 --topo-order 选项。
git branch -a 查看所有分支包括远程分支(红色部分) git branch 查看所有本地分支 git push origin --delete 分支名 删除远程分支 git branch -d 分支名 删除本地分支(不能在当前分支删除) git branch -D 分支名 强制删除本地分支...
git的创建标签与分支合并 一. 创建标签 二. 分支合并 一. 创建标签 小乌龟右键找到创建标签 带上标签名称 push推送时勾选标签的提交 二. 分支合并 选择要合并到当前工作分支中的分支,例如当前所在的分支是 master,选择 HEAD,则会将 HEAD 中的代码合并到 master 中,如下图所示:...
在Android中,假如我们在程序开发中使用SharedPreferences对象在路径:/data/data/[PackageName]/shared_prefs目录下创建了一个 userinfo.xml 文件,并在该文件中保存了一些基础的信息。如果我们想查看该文件的内容,该如何查看呢?有两种方法可以查看,第一:采用Eclipse中自带的 File Explorer 工具把该文件导出来[pull...
简介 kd树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。 一个KDTree的例子 上图的树就是一棵KDTree,形似二叉搜索树,其实KDTree就是二叉搜索树的变种。这里的K = 3. 首先来看下树的组织原则。将每一个元组按0排序(第一项序号为0,第二项序号为1,第三项序号为2),在树的第n层,第 n%3 ...
1,Centos目录下面创建三个文件(kettleFile--存放kettle的转换或者作业;kettleLogs--存放运行中的日志;kettleShs--存放任务定时的shell文件) A 2,对应的shell定时文件设置: ①Kettle的转换文件对应的shell文件--test_tr.sh(kettle中的pan.sh是针对转换的) #!/bin/bash currTime=$(date ...
复杂世界中的微变量 美 马克.佩恩 架构 本书为6大类,以50篇短文讲述复杂世界的50种小趋势,这些看似微小的变化,正在给我们身处的社会造成巨大的变革。 一.爱情和感情 二.健康和饮食 三.科技 四.生活方式 五.政治 六.工作和业务 1.1全职先生 由男性养家糊口的传统观念业已被颠覆 更多的女性接受更好的教育 更多的男性自愿或被迫成为全职先生 成为一名全职先生的关键,在于不要把排在收入榜第2名所...
说明: 文章前半部分是转载别人的文章,具体详看:http://gushiren.blog.51cto.com/3392832/1673788 一、Redhat上VNC Server配置 前提:连接到互联网,将使用yum在线安装VNC服务器 1.安装 TigerVNC Server # yum searchtigervnc-server 返回大概如下内容: tigervnc-server.x86...
VMWare Workstation 15上安装了虚拟机以后,一直无法连接到网络。查看尝试网络上各种的配置一直无法解决,自己鼓捣,发现了一种新的可能解决方法。 桥接模式——》配置适配器——》只保留你主机电脑的无线或者网络配置(无线或者有线)...
任务:解决UE4C++中文输出乱码的问题 解决方案:将涉及到输出中文的文件编码格式改为UTF-8(VS默认为GB2313)。 第一步:自定义菜单栏 因为VS2019高级保存设置默认是没有开放的,所以我们需要先自定义菜单栏将其开放: 第二步:设置文件编码为UTF-8 这样,C++的中文到UE4的输出就不会乱码了。...
68、商品服务-API-品牌管理-JSR303分组校验 JSR 303 分组校验 (1)为什么使用 分组校验? 通过上面的过程,可以了解到单个方法的校验规则。 如果出现多个方法,都需要校验 Bean,且校验规则不同的时候,怎么办呢? 分组校验就可以去解决该问题,每个分组指定不同的校验规则,不同的方法执行不同的分组,就可以得到不同的校验结果。 (2)基本认识 JSR 303 的每个注...
Gmail automatically greys text that looks like a signature. Anyone have any guesses how it does this? (I've noticed that it depends on the presence of the sender's name, but I think that's only part o...
I am working to further develop my understanding in Keras and have come upon a confusing error. I am using the most recent packages through Anaconda. The error appears to be with model.add(Flatten()),...
I am currently working with the accelerometer on Android, and have run into an interesting situation. I need to find out the maximum values for the following, WITHOUT requiring the end user to flop th...
I have a v-list-group with 2 sub-group inside it like in the image shown below. Whenever I click the parent list-group other groups are getting collapsed, but when I click a sub-group inside a list-gr...
We are using SonarQube for analyzing an Symfony Project. In the IDE(PHPSTORM) we setup a predefined Codestyle (PSR2) and the same in SonarQube. SonarQube complains about the following code style and s...