如何在Git中始终显示完整历史记录?

6
我正在使用Intellij和命令行Git,我们遇到了一个问题,因为Git默认不显示“无趣”的更改,所以我们不能看到提交。例如,如果开发人员“A”更改了某些内容并推送了更改,然后开发人员“B”将其更改回原来的样子(在“A”更改之前),并推送了该更改,则这些提交将不会显示在历史记录中,因为它们会相互取消(至少这是对我解释的方式)。这使得很难找到问题,并导致许多“我的更改去哪儿了?”理想情况下,Intellij和命令行都应该默认显示完整历史记录,所有提交,包括合并。 有人知道在.gitconfig中实现此目的的设置吗?编辑:以下部分来自git-log documentation,并解释了我所说的“无聊的变化”是什么意思。默认模式简化了历史记录,以最简单的历史记录说明树的最终状态。这是因为如果最终结果相同(即合并具有相同内容的分支),则修剪一些侧面分支--full-history与默认模式相同,但不修剪某些历史记录。

“uninteresting changes” 是什么意思? - iltempo
3
你如何因查看日志视图而丢失提交记录?在我使用的所有工具中,Git始终显示所有提交记录。 - asm
@AndrewMyers git-log默认排除“无趣的提交”,这意味着与父级相同的提交。参见文档中的“历史简化”:https://www.kernel.org/pub/software/scm/git/docs/git-log.html - Edward Thomson
看看这个对你是否有用 https://dev59.com/fnE95IYBdhLWcg3wApHl - Cole9350
1个回答

5

要显示完整的历史记录,使用git log命令时请加上--sparse--full-history选项。

--sparse

    包括所有遍历的提交。
注意,如果没有--full-history,则这仍然简化合并:如果父提交中的一个是TREESAME,则只跟随该提交,因此不会遍历合并的其他分支。

请注意,没有办法指定git命令的默认标志,因此您需要为命令行git使用创建别名。我不知道IntelliJ是否支持这样的git log设置。


1
这很遗憾,但或许有一天这将能够在命令行和Intellij中配置。 - user3120173
如果你们在发布的链接中向下滚动一点,就会发现自从1.7.6版本以来,有一种指定git命令默认标志的方法。 - Cole9350
@Cole9350 请阅读您所提到的问答 - 版本1.7.6的功能仅适用于log.abbrevCommit,而不适用于此处讨论的开关。 - mockinterface
@mockinterface 您的帖子明确写道:“请注意,没有办法为git命令指定默认标志,因此您将不得不为命令行git使用创建别名。”您可以同意这是错误的,也许您应该更具体地提到您所指的“命令”。 - Cole9350
@Cole9350 如果你希望以一阶逻辑、谓词演算和存在量化的严格术语来解释我的评论,那么你可以自由地这样做。对我来说,很明显,在默认标志被黑客入侵的情况下,与此帖子完全无关,这并不算作默认标志支持。 - mockinterface

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接