标签: git-log

如何获取特定提交的"git log"补丁

如果我有一个尚未被推送到源的提交哈希,我怎么才能为该提交生成一个补丁.我想使用git log -p --no-names但无法看到交换机传递特定的提交哈希.我应该使用不同的git命令吗?

git version-control patch git-log

22
推荐指数
1
解决办法
1万
查看次数

通过短哈希获取GIT提交消息的更好方法是什么?

嘿伙计们,我现在通过使用下面的内容获取某个提交哈希的提交消息

hash='b55da97'
git log --pretty=oneline ${hash} | grep "${hash}" | awk '{ print $2 }'
Run Code Online (Sandbox Code Playgroud)

这些看起来效率极低,是否有更聪明更便宜的方法,或者我坚持使用grepping和awking?

git bash awk grep git-log

22
推荐指数
3
解决办法
1万
查看次数

如何在一行中获得短统计的Git日志?

以下命令在控制台上输出以下文本行

git log --pretty=format:"%h;%ai;%s" --shortstat
ed6e0ab;2014-01-07 16:32:39 +0530;Foo
 3 files changed, 14 insertions(+), 13 deletions(-)

cdfbb10;2014-01-07 14:59:48 +0530;Bar
 1 file changed, 21 insertions(+)

5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz
772b277;2014-01-06 17:09:42 +0530;Qux
 7 files changed, 72 insertions(+), 7 deletions(-)
Run Code Online (Sandbox Code Playgroud)

我有兴趣让上面的格式像这样显示

ed6e0ab;2014-01-07 16:32:39 +0530;Foo;3;14;13
cdfbb10;2014-01-07 14:59:48 +0530;Bar;1;21;0
5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz;0;0;0
772b277;2014-01-06 17:09:42 +0530;Qux;7;72;7
Run Code Online (Sandbox Code Playgroud)

这将在某些报告中使用,该报告可以解析以分号分隔的值.事情是文本"\n 3 files changed, 14 insertions(+), 13 deletions(-)"(包括新行)被转换为3;14;13(没有新行)一个可能的角落案例是文本"5fde3e1;2014-01-06 17:26:40 +0530;Merge Baz",其中没有这样的行.在那种情况下我想要;0;0;0

总体而言,目标是分析一段时间内的文件更改统计信息.我阅读了git日志文档,但找不到任何可以帮助我以这种格式呈现的格式.我提出的最好的是上面提到的命令.

因此,任何可以生成预期格式的命令或shell脚本都会有很大帮助.

谢谢!

git shell text-processing text-manipulation git-log

22
推荐指数
5
解决办法
8116
查看次数

git log --graph中的线条颜色是什么意思?

我很好奇线条颜色的含义是git log --graph什么?

是的,我问的是在控制台输出的左边缘| / \连接提交的行*.

git log --graph输出的一部分

问题#1
这些颜色有一些隐藏的含义吗?
或者它们是伪随机选择的?

问题#2
有时重叠(但断开连接)的行具有相同的颜色.
例如,请参见上面屏幕截图中的紫色线条:

  • 第一行从.a55e1c
  • 从第二行3c1043

是否有可能要求git明智地选择颜色以避免孤立(没有共同提交)相同的颜色线重叠?
我希望图表更容易阅读.

git graph git-log

22
推荐指数
2
解决办法
4354
查看次数

你的分支由X提交领先于'origin/master'.如何找到X提交?

我使用以下命令检查X提交:

git log --author=<my-name> -<X>
Run Code Online (Sandbox Code Playgroud)

但问题是我不小心从另一个存储库中提取代码,并将提交从存储库添加到我的本地git存储库.

所以我不能使用上面的命令,因为新的提交包含一些其他作者.

git git-log git-commit

21
推荐指数
1
解决办法
1万
查看次数

为什么git log --cherry-pick没有删除等效的提交?

我一直在尝试使用

git log --no-merges --cherry-pick --right-only master...my-branch
Run Code Online (Sandbox Code Playgroud)

生成my-branch中但不在master中的提交列表(根据git-log文档).但是,列表中仍有许多等效的提交.如果我显示它们和它们的补丁,除了commit id之外没有区别.

git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 >patcha
git show c53c7c32dcd84bfa7096a50b27738458e84536d5 >patchb

diff patcha patchb
1c1
< commit 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621
---
> commit c53c7c32dcd84bfa7096a50b27738458e84536d5
Run Code Online (Sandbox Code Playgroud)

甚至将git patch-id它们视为等效:

git show c53c7c32dcd84bfa7096a50b27738458e84536d5 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b c53c7c32dcd84bfa7096a50b27738458e84536d5
git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621
Run Code Online (Sandbox Code Playgroud)

怎么不git log --cherry-pick把这些作为重复?

git cherry-pick git-log git-cherry-pick

21
推荐指数
1
解决办法
6194
查看次数

Git日志输出在特定的修订版本范围内

这是我的问题.如何获取特定路径的2个修订号之间的所有日志消息?让我通过例子解释.

我试着用这一行写它:

git -dir=/home/Desktop/GIT_REFERENCE_REPOSITORIES/manager.git log  10000...15000
Run Code Online (Sandbox Code Playgroud)

我假设它给了我与manager.git相关的10000到15000个修订版的日志消息.但事实并非如此.有人帮我吗?

git git-log

21
推荐指数
1
解决办法
2万
查看次数

git log -p与git show vs. git diff

如何命令git log -p,git show以及git diff相关的,为什么会被一个比另一个使用?

鉴于有以下4个提交的回购:

commitd - last commit
commitc
commitb
coomita - initial commit

以下git命令之间有什么区别?:

git log -p commitb commitd  
git show commitb commitd  
git diff commitb commitd  

git log -p commitd commitb  
git show commitd commitb  
git diff commitd commitb  

git log -p commitb..commitd  
git show commitb..commitd  
git diff commitb..commitd

git log -p commitd..commitb  
git show commitd..commitb  
git diff commitd..commitb

git log -p commitb...commitd  
git show commitb...commitd  
git diff commitb...commitd

git …
Run Code Online (Sandbox Code Playgroud)

git git-diff git-log git-show

20
推荐指数
1
解决办法
7748
查看次数

如何使用分支名称显示git日志

我尝试git logw/--decorate--source选项.但仍然无法提交的支行名称 2f3cb60d7e7776,为什么呢?

#git log 2f3cb60 --graph  --decorate --source --all --oneline
...
* | | | 1920ad5 refs/heads/gpio support gpio lib
| |/ /
|/| |
* | | 2f3cb60   2f3cb60 fix
* | | d7e7776   2f3cb60 fix
| |/
|/|
* | aa4dcfb     refs/remotes/origin/httpd support
* | cfc839d     refs/remotes/origin/httpd add folder
Run Code Online (Sandbox Code Playgroud)

如何显示带分支名称的git日志?

git git-log git-branch

19
推荐指数
1
解决办法
2万
查看次数

我如何识别在git提交中添加或删除的文件/目录?

我需要编写一个脚本,逐步跟踪从git仓库添加和删除的文件和目录.

我试过用:

git log -n1 --pretty="format:" --name-only
Run Code Online (Sandbox Code Playgroud)

但这只能告诉我哪些文件已提交.它没有指定是添加还是删除.

有任何想法吗?

git git-log

18
推荐指数
2
解决办法
7172
查看次数