【问题标题】:How to always show full-history in Git?如何始终在 Git 中显示完整的历史记录?
【发布时间】:2014-01-30 18:17:06
【问题描述】:

我正在使用 Intellij 和命令行 Git,但我们遇到了看不到提交的问题,因为 Git 默认不显示“无趣”的更改。

例如,如果开发人员“A”更改了某些内容并推送更改,那么开发人员“B”将其更改回原来的方式(“A”更改之前)并推送该更改,这些提交不会显示在历史上,因为它们会相互抵消(至少这是向我解释的方式。)这使得很难找到问题并导致很多“我的零钱去哪儿了?”

在理想情况下,Intellij 和命令行每次都会显示完整的历史记录、所有提交,包括合并,默认情况下。

任何人都知道在 .gitconfig 中完成此操作的设置吗?

编辑:以下部分来自git-log documentation,并解释了我所说的“无趣的变化”的意思

默认模式 将历史简化为解释树最终状态的最简单历史。最简单,因为如果最终结果相同,它会修剪一些侧枝(即合并具有相同内容的分支) --完整的历史 与默认模式相同,但不会删除某些历史记录。

【问题讨论】:

标签: git


【解决方案1】:

要使用git log 显示完整历史记录,请使用--sparse--full-history 开关调用它。

- 疏 包括所有遍历的提交。 请注意,如果没有 --full-history,这仍然会简化合并:如果其中之一 父母是树,我们只遵循那个,所以另一边 合并永远不会走。

请注意,无法使用specify default flags for git commands,因此您必须为命令行 git 使用创建别名。我不知道 IntelliJ 支持 git log 的此类设置。

【讨论】:

  • 这很不幸,但也许有一天这将可以在命令行和 Intellij 中进行配置。
  • 如果你们只是在您发布的链接上向下滚动一点,您会看到自 1.7.6 版以来有一种方法可以为 git 命令指定默认标志
  • @Cole9350 请阅读您所指的问答 - 1.7.6 版本的功能特定于 log.abbrevCommit,仅此而已。它不适用于此处讨论的开关。
  • @mockinterface 您的帖子清楚地显示“请注意,无法为 git 命令指定默认标志,因此您必须为命令行 git 使用创建别名。”您可以同意这是错误的,也许您应该更具体地说明您所指的“命令”
  • @Cole9350 如果你想用严格的一阶逻辑、谓词演算和存在量化的术语来解释我的评论,你可以这样做。对我来说很明显,拥有与这篇文章完全无关的 a default flag hacked in 不算作默认标志支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 2020-12-01
  • 2019-10-22
  • 2010-09-30
  • 2020-06-02
  • 2014-11-25
相关资源
最近更新 更多