【问题标题】:What does --oneline in git diff do?git diff 中的 --oneline 有什么作用?
【发布时间】:2020-09-24 10:59:02
【问题描述】:

在我的this 答案中,我保留了一个我不知道的选项,即--oneline 应用于git diff 而不是git log。但是在man git-diff 中搜索oneline 不会给出任何结果。仍然git diff --oneline 不会出错。

它是干什么用的?

【问题讨论】:

  • 我猜这是--pretty=oneline的简写
  • @CodeCaster,但在man git-diff 中甚至都没有,所以我猜这个问题保持不变。
  • @CodeCaster 这是git diff,不是git log
  • @phd 我是说为git log 而不是为git diff 明确记录的选项不会与后者出错,那么它有什么作用?
  • 我认为它什么也没做。我相信它被忽略了。我怀疑git 中有一个通用代码来解析命令行选项,它允许用于不同子命令的选项;但这需要进一步调查。

标签: git options git-diff git-log


【解决方案1】:

根据git-diff 文档,该命令显示了提交、提交和工作树等之间的更改。git-diff-tree 命令是 git-diff 的一部分,它比较两个树对象。这使得使用该选项成为可能。它是--pretty=oneline --abbrev-commit 的缩写形式。我还在git-log 文档中找到了一条评论:

该命令采用适用于 git rev-list 命令的选项来控制显示内容和方式,并采用适用于 git diff-* 命令的选项来控制每次提交引入的更改的显示方式。

所以我怀疑它是子命令的一个可能选项,但它对 git-diff 命令没有影响。

【讨论】:

    【解决方案2】:

    git diff --oneline 没有什么特别的。碰巧git loggit diff 共享大部分命令行解析器(因为所有diff 选项也适用于log)。为此,git diff 不会抱怨--oneline 的存在,只会忽略它。

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 2011-05-01
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2022-10-20
      相关资源
      最近更新 更多