标签: git-log

如何"切换"git-log的日期格式?如何在同一个git日志中同时显示相对和绝对日期?

我当前的默认git日志行运行如下:

git log --graph --date=relative --pretty=format:'%Cblue%h%Creset %Cgreen(%cr)%Creset -%C(yellow)%d%Creset %s' --abbrev-commit -7
Run Code Online (Sandbox Code Playgroud)

然而,有时候,我更喜欢绝对的日期/时间格式,而不是相对格式,所以我尝试了:--date=default--date=local不是--date=relative甚至--date=..完全省略:结果没有改变.可能它与"log.date配置变量设置log命令的--date选项的默认值有关." , 我不知道.可能我需要重新启动终端(但如果是这种情况我会有点失望......).

简而言之,我想"切换"日期,甚至可以在一个git log实例中使用这两种日期格式.

git date git-log

4
推荐指数
1
解决办法
1711
查看次数

git graph 线条和星号代表什么?

试图更详细地了解 git。在 git log 的图形输出中,线和点是什么意思?为什么点只在左边的一部分,而在右边的另一部分?是因为我从特定分支运行命令吗?它会是不同的形式大师吗?拉合并是否以不同方式显示?

在此处输入图片说明

git git-log

4
推荐指数
2
解决办法
1673
查看次数

git log 格式的可选缩进换行符

我一直在修改git某些log命令的别名。我有我想要的大部分东西(信用在这里),但是我在一件事情上遇到了麻烦。当我打电话

git log --graph --format=format:'%h - [%ar] %s%+d'
Run Code Online (Sandbox Code Playgroud)

我得到

* ab123f - [6 hours ago] Fix the references
|  (HEAD, origin/master, master)
* bc123f - [8 hours ago] New build syntax
* cd123f - [10 hours ago] Initial import
Run Code Online (Sandbox Code Playgroud)

Where%+d添加一个新行并--decorate在其上放置标签(如果存在)。我想要的是标签与时间戳一致,如下所示:

* ab123f - [6 hours ago] Fix the references
|          (HEAD, origin/master, master)
* bc123f - [8 hours ago] New build syntax
* cd123f - [10 hours ago] Initial import …
Run Code Online (Sandbox Code Playgroud)

git formatting git-log

4
推荐指数
1
解决办法
2163
查看次数

忽略git log -p中的文件

我正在尝试总结我在项目上的工作.问题是我不想在输出中包含测试文件git log --patch.

这些文件位于一个名为的目录中mtest; 但是,该文件夹还包含我想要显示的测试套件代码.测试文件,我想排除,有扩展mscxxml,所以我想基于该过滤器的工作.

我已经看过使'git log'忽略某些路径的更改,但这看起来像是排除了修改文件而不是简单地排除文件的提交.

有没有办法做到这一点?

我已经尝试了Jubobs的答案,它看起来很有效,但令人惊讶的是,即使有过滤器,也会出现2个文件.

我用这个小存储库复制了这个:

mkdir test
cd test
git init
echo 'readme' > README
git add .
git commit -m "Initial commit"

mkdir test2
cd test2
echo 't1' > test1.cpp
echo 't2' > test2.xml
git add .
git commit -m "c2"

echo 't3' > test3.cpp
echo 't4' > test4.xml
git add .
git commit -m "c3"
Run Code Online (Sandbox Code Playgroud)

我注意到创建目录时不会过滤文件.我尝试了以下命令:

git log --patch -- . ":(exclude)**/*.xml"
Run Code Online (Sandbox Code Playgroud)

这导致包含 …

git git-log

4
推荐指数
1
解决办法
1833
查看次数

带有tformat的git log中的额外换行符

当我使用时git log --pretty=oneline --shortstat,我得到了我的日志的紧凑表示:

% git log --pretty=oneline --shortstat
73c6eecd930c2f66d5c1e87fcca7ca9b0e356809 doing stuff with things
 3 files changed, 134 insertions(+)
65b457d2e0e94e628e1b30204075540524c8a1d2 doing things with stuff
 2 files changed, 4 insertions(+), 1 deletion(-)
...
375531279297af3c787855b0848b400f1c40b638 things with stuff doing
 1 file changed, 2 insertions(+)
5501964b19815a07b64e1cd391e032147af33b8f with things doing stuff
 25 files changed, 6746 insertions(+)
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用tformat等效的oneline,我会在stat之前得到一个额外的换行符:

% git log --pretty="%C(yellow)%H%Creset %s" --shortstat
73c6eecd930c2f66d5c1e87fcca7ca9b0e356809 doing stuff with things

 3 files changed, 134 insertions(+)
65b457d2e0e94e628e1b30204075540524c8a1d2 doing things with stuff …
Run Code Online (Sandbox Code Playgroud)

git git-log

4
推荐指数
1
解决办法
563
查看次数

git - 命令提交按日期引入"TODO"

我想找到引入的提交添加了"TODO"或"FIXME"注释并按日期排序.

我知道这git log -G'TODO|FIXME'将显示包含评论的提交,我可以做类似的事情

git log --format='%ci' -G'TODO|FIXME' | cut -d' ' -f 1
Run Code Online (Sandbox Code Playgroud)

但是,这不会尊重它应该只提交引入这样的评论.

有谁知道我怎么能找到提交此类评论的提交并按日期订购?如果实际的SHA-1包含在该列表中,那将更加令人敬畏.

git git-log todo

4
推荐指数
1
解决办法
120
查看次数

如何使git log输出仅在一行上显示日期和哈希?

我需要获取Date并以这种格式提交一组github的结果:

Date Commit
19 Mar 2015 b6959eafe0df6031485509c539e22eaf2780919c
1 Apr 2015 9a1f13339cc7d43930440c2350ea3060b72c8503
1 Apr 2015 1e76036421ca4d72c371182fc494af514911b099
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令获取日期:

git log | grep Date: | awk '{print  $4 " " $3 " " $6}'
Run Code Online (Sandbox Code Playgroud)

和提交

git log | grep commit | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

如何合并命令,以便在同一行中打印两个结果?

这是git日志的示例:

commit 1e76036421ca4d72c371182fc494af514911b099
Author: xxxx
Date:   Wed Apr 1 17:35:36 2015 +0200

    First web app commit

    First web app commit

commit 9a1f13339cc7d43930440c2350ea3060b72c8503
Author: xxxx
Date:   Wed Apr 1 17:28:42 2015 +0200

   change from app to website

commit b6959eafe0df6031485509c539e22eaf2780919c …
Run Code Online (Sandbox Code Playgroud)

git git-log

4
推荐指数
1
解决办法
1110
查看次数

使用git log后如何进入Git Bash中的下一个命令?

使用Git Bash时,我输入命令:

git log
Run Code Online (Sandbox Code Playgroud)

它显示了所有日志.但现在我想做第二个命令.所以我按住向下箭头到达日志的底部,它只是说(END).如何进入下一行,以便输入下一个命令?

git git-log git-bash

4
推荐指数
1
解决办法
1205
查看次数

git log - 带前缀的分支

我想记录一组特定分支上的所有更改,以查看它们之间的关系,我发现:

git log --graph --oneline --topo-order --decorate --simplify-by-decoration `git branch --list -a origin/foo/*`
Run Code Online (Sandbox Code Playgroud)

完全符合我的要求(即在所有以foo/*为前缀的分支上进行日志更改).

但现在我--branches对git log 的选择感到好奇.这似乎是应该以类似的方式工作,但如果我使用--branches=origin/foo/*或者--branches=remotes/origin/foo*甚至--branches=foo输出是非常不同的(只有极少数的和不相干的提交都会被显示).

文件说:

--branches[=<pattern>]
Pretend as if all the refs in refs/heads are listed on the command line as
<commit>. If <pattern> is given, limit branches to ones matching given shell
glob. If pattern lacks ?, *, or [, /* at the end is implied.
Run Code Online (Sandbox Code Playgroud)

有什么不同 ?我的问题已经解决,因为我可以使用第一个版本 - 但我问这个,因为我很好奇.(如果可以避免使用后蜱,那么添加git别名会稍微简单一些.)

此问题讨论相关主题 - 但我看不到有关我的具体问题的任何信息.

git git-log

4
推荐指数
1
解决办法
409
查看次数

Git shortlog不显示Jenkins shell中的输出

在与Jenkins合作时遇到一些有线问题,

#!/bin/sh

set -x

#initialize environment
export PATH="$HOME/.gem/ruby/2.0.0/bin:$PATH"
export PATH="$HOME/.fastlane/bin:$PATH"
export LC_CTYPE=en_US.UTF-8

cd ~/autobuild/projects/MyAPP
git checkout dev
git reset head --hard
git pull

git shortlog

git log
Run Code Online (Sandbox Code Playgroud)

当我从Jenkins作业运行上面的脚本时,它显示git日志输出正常,但没有git shortlog.问题是什么?MyApp有数百个提交.

git terminal command-line-interface git-log jenkins

4
推荐指数
1
解决办法
549
查看次数