标签: git-log

如何在JGit中"git log --follow <path>"?(要检索包括重命名的完整历史记录)

我如何扩展以下logCommand,以获得--followgit log命令的选项?

Git git = new Git(myRepository);
Iterable<RevCommit> log = git.log().addPath("com/mycompany/myclass.java").call();
Run Code Online (Sandbox Code Playgroud)

此选项在jGit中实现,但我不知道如何使用它.logCommand的方法似乎没有用处.谢谢!

git git-log jgit

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

git whatchanged - -M做什么?

我正在看一些使用-M(大写M,而不是小写,记录为包含合并)的代码传递给Git whatchanged的代码.

我无法在手册页中看到该标志的定义(对于1.8.3.1).任何人都可以建议它做什么?它是-m(小写)的反面吗?

git repository git-log

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

Git 缺少提交

我是 git 新手,偶然发现了一个奇怪的问题

所以我对我的本地存储库做了一些提交,并用 git log 查看它们,它运行良好。一段时间后,我检查了一个较旧的提交,后来我想跳回我最近的提交以继续我的工作。所以我又做了一个 git log。但是现在没有显示最新的 3-4 次提交。输入 'git checkout master' 将我带到第二个日志命令的最新提交,而不是我描述的第一个提交。这是一个问题还是我必须键入另一个命令才能返回到最新提交?

我希望我的问题是可以理解的。

我按正确顺序输入的所有命令:

Git add public/
Git commit -m “Fo”
(这里没有错误)
Git log --oneline.
输出:8 次提交。
Git 签出“旧提交的 ID”
Git 日志 --oneline。
输出:4 次提交

git git-log git-commit

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

用于特定文件的差异的Git日志

如何获得日志列表以及每个提交的差异,
即:

commit1  
Author
Date  
Commit message
changes between commit1 and commit2

commit2  
Author
Date
Commit message
changes between commit2 and commit3
...
Run Code Online (Sandbox Code Playgroud)

使用
git log /some/file
提供更改某些/文件的提交列表

即:

commit1  
Author
Date  
Commit message

commit2  
Author
Date
Commit message
...
Run Code Online (Sandbox Code Playgroud)

但是,不会显示每个提交中的更改

使用
git diff hash1..hash2 /some/file
在这两个提交之间给出/ some/file中的更改.
但只在这两个提交之间,而不是通过所有提交改变/ some/file

git git-diff git-log

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

获取git log的前'x'个字符

我正在尝试仅获取git日志的前40个字符,我当前无法正常工作的命令是:

git log <branch_name> | cut -c 1-40 >> some_file
Run Code Online (Sandbox Code Playgroud)

这将输出整个日志。

Kinda是Linux新手,有什么建议吗?

编辑:

git log <branch_name> | head -n1 >> some_file
Run Code Online (Sandbox Code Playgroud)

每个@Someprogrammerdude建议的工作命令

git cut git-log

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

git 文档对于 %B 漂亮打印说明符的“未包装主题和正文”是什么意思

如果您在文档中搜索 %b 和 %B ,除了神秘的“(未包装的主题和正文)”之外,没有解释它们之间的区别。

这是来自 repo 的示例提交(使用 git 版本 2.9.3)以及使用 %b 与 %B 打印的不同结果。提交命令是git commit -m 'Automated version update from Jenkins.'

$ git log -1 origin/master
commit 30ac57e...
Author: Jenkins <email@email.com>
Date:   Wed Jul 12 16:28:41 2017 +0000

    Automated version update from Jenkins.
$ git log -1 --format=%B origin/master
Automated version update from Jenkins.

$ git log -1 --format=%b origin/master

$ 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 %b 无法生成提交消息正文,也不明白为什么 %B (如果它在某种意义上包含“主题和正文”)只提供消息正文。

从日志进行漂亮打印的 %b 和 %B 之间的根本区别是什么?

如果您只想可靠地打印最近的提交消息(仅消息),您应该怎么做?我认为应该是,git log -1 --format=%b …

git github git-log git-commit

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

Git 日志:“未知的日期格式”

这是我正在运行的命令及其错误:

# git log --pretty=format:"%ad" --date=format-local:"%y-%m-%d %k:%M"
fatal: unknown date format format-local:%y-%m-%d %k:%M
Run Code Online (Sandbox Code Playgroud)

相同的命令在其他机器上运行良好。我在 ubuntu docker 容器中遇到了这个错误。其他格式抛出相同的错误:

# git log --pretty=format:"%ad" --date=format-local:"%M"
fatal: unknown date format format-local:%M
# git log --pretty=format:"%ad" --date=format-local:"%m"
fatal: unknown date format format-local:%m
# git log --pretty=format:"%ad" --date=format:"%m"
fatal: unknown date format format:%m
Run Code Online (Sandbox Code Playgroud)

似乎我缺少一个不属于 docker 映像的日期格式依赖项。

编辑:我正在使用 git 版本 1.9.1。

git strftime git-log docker

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

使用 gitpython 解析 git log

在python中,我想获取git存储库中文件的所有提交的日志并解析日志中的信息(哈希、作者姓名、作者邮件、作者日期、提交者姓名、提交者邮件、提交日期和提交消息) . 目前,我可以使用 gitpython 或通过子进程调用 shell 命令来获取原始 git 日志。

使用 gitpython:

g=git.Git(path)
loginfo=g.log("--pretty=fuller",'--follow',"<filename>")
Run Code Online (Sandbox Code Playgroud)

使用子过程调用:

lines = subprocess.check_output(
        ['git', 'log','--follow',"--pretty=fuller"," 
         <filename"],stderr=subprocess.STDOUT)
Run Code Online (Sandbox Code Playgroud)

但是,在那之后我想解析原始日志,但我无法在 gitpython 中找到合适的库/方法。此外,我还希望以 python 日期时间格式解析日期。你能帮我吗?

python git git-log gitpython

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

从 git commit 确定分支名称

我假设 git commit hash (5743a31610d38064af35573b91e3bbe39d808b9b) 将始终映射到 0 或 1 git 分支?有没有可靠的方法来跟踪创建 git commit 时的分支名称?据我所知,git 分支是一个指向提交的指针,给定一个提交,我们能否可靠地指向一个分支(如果该分支仍然存在)?

上下文:我正在创建一些 devops 部署更改日志,以便我们可以跟踪我们更改的内容 - 我想知道是否值得命名已发布的 git 分支,或者只是将 git commit 哈希放在那里,我们可以反转如果我们真的想要查找分支名称?

git git-log git-commit git-hash

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

git:tilda(〜)和脱字符号(^)有什么区别

以下是show-rev的git输出

$ git name-rev  --all

2651919f941c11581c794b40aadb2028c4f52ab4 joincolumn_issue
2617f2a1410ce0ec8ea268bbb073008b73490e78 master~2
292def505dd3cdbfd9ac974396775683b5f4c288 ls
0ec9116840a3f21c0b800617c29b7ddab5fda928 joincolumn_issue~2
ee9bb706c8fcc329fac4acf69ad6b684f1069170 master~1
d56a6751771b1f62d9ceb0bcce9a2391c004ee44 master^2
3d80a12ed375c6a9572cde39b5be0722c8cb6439 joincolumn_issue~1
df1834dbe560c2c95c8abaeec494eb1767b96a1e master
Run Code Online (Sandbox Code Playgroud)

如您所见,带有master^2和的master~2行, 因此,想知道这两者之间有什么区别,并且输出也不按时间顺序排列。

进一步的git图显示如下

$ git log --all --oneline --graph

* 2651919 (origin/joincolumn_issue, joincolumn_issue) changing to @JoinColumn(name="country_nm")
* 3d80a12 hibernate ignoring joinColumn value
* 0ec9116 changing name in joinColumn is breaking
| * 292def5 (origin/mappedBy, mappedBy, ls) OneToMany using mappedBy
|/
*   df1834d (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/samshers/graphql-hibernate
|\
| * d56a675 …
Run Code Online (Sandbox Code Playgroud)

git git-log git-history-graph

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