【问题标题】:I want to list someone 's git commit ,but I don't know the git command formate of since or after我想列出某人的 git commit ,但我不知道 since 或 after 的 git 命令格式
【发布时间】:2016-04-05 13:10:20
【问题描述】:

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

无效的对象名称“用法”。

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

代码:

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

【问题讨论】:

    标签: git processbuilder


    【解决方案1】:

    您收到关于 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"};
    

    【讨论】:

      【解决方案2】:

      试试这个命令 -

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

      添加--oneline 以仅获取提交哈希和提交消息。

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

      【讨论】:

      • 是的,我之前添加了“--pretty=oneline”,并且我已经尝试过--since="2016-4-5 01:30:00",但它仍然说无效的对象名称'用法'。
      • 我应该添加 --all ,然后添加 --since 和具体时间。谢谢!
      猜你喜欢
      • 2014-12-01
      • 2021-11-05
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      相关资源
      最近更新 更多