我想列出某人的git提交,但我不知道git命令的格式是从什么时候开始的

时间:2016-04-05 13:10:21

标签: git processbuilder

当我执行这个git命令:git rev-list --since=2015-03-01时,它总是说

  

无效的对象名称'usage'。

我不知道之后的格式。 我正在使用Java ProcessBuilder来执行命令。 任何帮助表示赞赏!

代码:

command=new String[] {"git", "rev-list", "--since=2015-06-22", "--pretty=oneline"};
ProcessBuilder processBuilder = new ProcessBuilder(command);`

2 个答案:

答案 0 :(得分:0)

尝试此命令 -

git log --author="NAME" --since="2015-06-22" 

添加--oneline以获取提交哈希后跟提交消息。

注意: - after和--since选项是同义词。

答案 1 :(得分:0)

您收到有关usage的错误,因为您正在使用对rev-list无效的参数,因此git会打印使用情况摘要。它回来的第一个词是usage,它正在抱怨。

$ git rev-list --since=2015-06-22 --pretty=oneline
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
  limiting output:
    --max-count=<n>
    --max-age=<epoch>

......等等。

根据您当前的尝试,我认为您正在尝试在特定日期之后找到提交,并且每行返回一次。由于您使用的是rev-list而不是log,因此您可能需要一个提交对象列表,而不是完整的日志条目。

您的命令的主要问题是rev-list期望提交ID或其他引用作为其起点,并且您不提供一个。这很简单,只需指向HEAD

这将为您提供从HEAD返回指定日期的提交ID。

git rev-list --since=2015-06-22 HEAD

或者在您用于Java的语法中指定

command=new String[] {"git", "rev-list", "--since=2015-06-22", "HEAD"};