标签: git-log

如何从浅克隆获取完整提交日志?

是否可以从作为浅克隆的本地副本获取提交日志历史记录(--depth = 1)

我在 jenkins 构建作业中使用浅克隆来获取代码并构建,但更改日志不完整,因为我使用的是浅克隆。有办法解决这个问题吗?

git git-log shallow-clone

5
推荐指数
1
解决办法
3915
查看次数

Windows 上 git log 中的颜色和作者?

使用 Windows 10 Pro 64 位,我发现了一个很好的命令来列出 Git 历史记录,将HEAD、分支和标签显示为醒目的颜色。好的!

git log --oneline --decorate --graph --all
Run Code Online (Sandbox Code Playgroud)

但我没有看到任何日期或作者!所以我找到了另一个不错的命令:

git log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Run Code Online (Sandbox Code Playgroud)

也非常好——现在我可以看到日期和作者。但所有漂亮的颜色都消失了(除了图表)。HEAD、分支和标签的颜色都与日志的其余部分相同,因此很难将它们挑选出来。

如何在保留日期和作者的同时获取提交指针的颜色?

windows git git-log

5
推荐指数
1
解决办法
2349
查看次数

Git Commit 消息漂亮的格式:有没有办法格式化多行正文

我正在尝试使用git log漂亮的格式来格式化我的输出。到目前为止一切顺利,但是当使用 50/72 模式时,包裹的主体会破坏格式(下面的屏幕截图供参考)。

有没有办法在后续行中保留第一行主体行的格式?

演示

我正在使用的漂亮格式:

git log --graph --format=format:" | %C(bold yellow)%D%Creset%n | %Cred%h%Creset | %C(cyan)%an%Creset | %Cgreen%cr%Creset%n | %s%n | %C(dim normal)%b%n"
Run Code Online (Sandbox Code Playgroud)

git git-log

5
推荐指数
1
解决办法
2223
查看次数

git log -L 没有差异

我正在尝试使用 git log -L <start>,<end>:<filename>但我希望输出非常有限(实际上只是散列)。虽然 --pretty 以我想要的格式打印提交信息,但我没有找到不显示差异的方法...

例如在 linux-next 上我尝试的是:

git log --pretty=format:"%H" -s -L 70,70:./arch/x86/include/asm/irqflags.h
Run Code Online (Sandbox Code Playgroud)

其中(根据联机帮助页) -s 应该抑制差异的输出,但是输出是:

$ git log --pretty=format:"%H" -s -L 70,70:./arch/x86/include/asm/irqflags.h
6abcd98ffafbff81f0bfd7ee1d129e634af13245
diff --git a/include/asm-x86/irqflags.h b/include/asm-x86/irqflags.h
--- a/include/asm-x86/irqflags.h
+++ b/include/asm-x86/irqflags.h
@@ -1,2 +64,1 @@
-#ifdef CONFIG_X86_32
-# include "irqflags_32.h"
+{

96a388de5dc53a8b234b3fd41f3ae2cedc9ffd42
diff --git a/include/asm-x86/irqflags.h b/include/asm-x86/irqflags.h
--- /dev/null
+++ b/include/asm-x86/irqflags.h
@@ -0,0 +1,2 @@
+#ifdef CONFIG_X86_32
+# include "irqflags_32.h"
Run Code Online (Sandbox Code Playgroud)

我正在使用 git 版本 2.10.2

git git-log

5
推荐指数
2
解决办法
2713
查看次数

在按作者过滤时如何避免在 gitk 中显示父提交?

我只想在 gitk 中显示我的提交。我尝试使用命令

gitk --author="Eugeniy Maksimov" <path>
Run Code Online (Sandbox Code Playgroud)

gitk 不仅显示了我的提交,还显示了他们的父母。为什么?如何避免这种情况?

git gitk git-log

5
推荐指数
0
解决办法
122
查看次数

如何使用 git log pickaxe 显示更改本身?

我想在 git log 中搜索特定字符串以找到它被修改/删除/添加的位置。

我知道我可以使用pickaxe(ie, git log -S"Text")

当我运行此命令时,只显示发生更改的提交的名称。我也试过git log -G"Text"但没有区别。

当我尝试时git log -p -S"Text",它向我展示了两个文件版本之间的完整比较。

有没有办法找出文本被更改/添加/删除的确切位置(行)?

我查看了相关帖子12但没有回答我的问题。我正在使用 Windows 操作系统。

git git-log

5
推荐指数
1
解决办法
1382
查看次数

Git 日志问题:使用 oneline 选项时未显示日期

我在Pretty git branch graphs中看到了很多很好的答案,它们显示了git log用于date的 oneline 选项。但是,当我运行这些命令时,我的输出不同,我看不到日期。选项--oneline--date=<relative or iso>似乎不兼容。

结果为git log --date=iso

在此处输入图片说明

结果为git log --date=iso --oneline

在此处输入图片说明

我在三台不同的计算机上尝试了这个,结果相似。

更新:

链接的问题询问“如何提交日期”。也许他们的意思是“如何显示提交日期”,但就目前而言,问题尚不清楚。此外,在可能的副本中,OP 同时询问多个选项。我特别询问在使用该oneline选项时如何显示或打印日期(作者日期或提交日期)。另一个 OP 也与提交历史记录的大小有关,这也在我的问题范围之外。

也许可以编辑另一个问题以匹配这个问题,但是当我搜索这个问题时没有出现(虽然我没有git-log专门使用该标签,因为直到我搜索合适的标签我才注意到该标签我的问题的标签)。

另外,我知道没有其他有效的方法可以在不使用屏幕截图的情况下显示打印格式的结果,尤其是因为它们有颜色。对于它的价值,链接的问题也使用屏幕截图。

git git-log

5
推荐指数
2
解决办法
1252
查看次数

Git 日志缺少最新提交

将 MacBook 的提交推送到项目的 master 分支,但该提交没有出现在我的 Windows笔记本电脑 ( git log) 上,它只出现在我的 MacBook ( git log) 或存储库的 Bitbucket Web 界面上。

这怎么可能?

两个 git 本地存储库都指的是同一个分支(主)和同一个 bitbucket 存储库(一个通过 SSH 指向它,另一个(Windows)通过 HTTPS 指向它)。

提交发生在 40 分钟前,所以我怀疑这里发生了任何延迟。

git bitbucket git-log

5
推荐指数
1
解决办法
176
查看次数

Git:重命名后可靠地获取责备历史

我正在尝试构建一个git log命令来检索具有以下属性的文件历史记录(在复制和重命名之后):

  1. 我希望日志在注释之后“关闭”——也就是说,如果我git blame -elfwM记录了历史中的任何提交(无论文件当时具有什么名称),我希望出现在注释中的每个提交也被载入史册。

  2. 我想知道历史记录中每个条目的文件的原始名称。对于没有重命名文件的提交,这将与文件名相同;对于提交的提交,我想知道该提交的每个父级中的原始文件名。

  3. 对于文件的任何给定注释(在其历史记录中的任何一点),我希望该提交的相应历史记录条目(我们知道存在于属性 1)使其作者、日期和文件名与作者、日期和文件名匹配注释的文件名。

  4. 满足 (1),我想要尽可能少的额外提交。我特别想排除没有以任何方式影响文件的提交。

到目前为止,我能做的最好的是:git log --raw --follow -m --pretty="%H%n%P%n%aL%n%cs%n%s" -- FILENAME. 这是我在这条线背后的想法:

  • --follow 应该完成以下重命名和副本的工作(但不给我文件名)
  • --pretty=...应该给我提交、父母、作者、提交日期和主题。我猜原作者 + 提交日期是git blame有用的,但如果那是错误的,请纠正我。
  • --raw 应该给我一个给定提交的原始文件名和新文件名。
  • -m 应该拆分合并提交的条目,以便我可以获得单个父母的原始名称。

这在典型情况下似乎可以正常工作,但我编写了一个脚本来演示失败的场景。这是其中一次运行的示例输出:

Created git repository at /var/folders/y4/2t2n3dhj4bz4cwsrm801t_bm0000gn/T/tmp.Rtj55RWb
Committed: cbc8198fd5eb975ab5fc1fcc66889872429a40fe (master) Initial commit
Committed: 5628acbb478a8786eaec186bf4e6050142049848 (workbench) Renamed foo.txt to bar.txt
Committed: 2f6d49b3aa35ffa2953a65e21ba5c21d130fa3b1 (workbench) Modified line 3 of bar.txt.
Committed: bac0a739a1fd2acc7c0ce466d9055942cbf87ccb (workbench) Added dummy.txt
Committed: c018ca1b4436b73237c9a727ed2353cbd8152928 (workbench) Removed dummy.txt
Committed: 18bec91206357ec23ffe53a01d20ec64f7667e4e (master) Renamed …
Run Code Online (Sandbox Code Playgroud)

git git-log git-blame

5
推荐指数
0
解决办法
43
查看次数

Does any know why `before` include finish date?

Does any know why before include finish date?

The date 2021-07-01 14:13 actually is after 2021-07-01

在此处输入图片说明

Why results are wrong?

git version is 2.32.0

git git-log

5
推荐指数
1
解决办法
85
查看次数

标签 统计

git ×10

git-log ×10

bitbucket ×1

git-blame ×1

gitk ×1

shallow-clone ×1

windows ×1