2014-01-30 101 views
3

我正在使用Intellij和命令行Git,并且由于Git默认不显示“无趣”更改,所以我们在没有看到提交时遇到了问题。例如,如果开发者“A”改变某些内容并推动改变,则开发者“B”将其改变回原来的方式(在“A”的改变之前)并推动该改变,那些提交不会在历史中表现出来,因为他们会相互抵消(至少这是我向他解释的方式)。这使得很难找到问题并导致很多“我的变化去哪了?”如何在Git中始终显示完整历史记录?

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

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

编辑:以下部分是从git-log documentation并解释我所说的“无趣的变化”

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

+0

“无趣的变化”是什么意思? – iltempo

+3

由于您在日志视图中看到的内容,您如何失去提交? Git总是显示我使用的每个工具中的所有提交。 – asm

+0

@AndrewMyers默认情况下,git-log排除“无趣提交”,意味着提交与父代相同。请参阅文档中的“历史简化”:https://www.kernel.org/pub/software/scm/git/docs/git-log.html –

回答

2

要显示完整的历史与git log--sparse--full-history开关调用它。

 
--sparse 

    All commits that are walked are included. 

    Note that without --full-history, this still simplifies merges: if one of 
    the parents is TREESAME, we follow only that one, so the other sides of the 
    merge are never walked. 

注意,有没有办法specify default flags for git commands所以你必须为你的命令行的git使用创建别名。我不知道IntelliJ支持这种设置为git日志。

+0

这很不幸,但也许有一天这可以在命令行和Intellij中配置。 – user3120173

+0

如果你们只是在你发布的链接上滚动了一下,你会发现有一种方法可以指定自1.7.6版本以来git命令的默认标志。 – Cole9350

+0

@ Cole9350请阅读你参考的问答环节 - 版本1.7 .6功能是**特定于log.abbrevCommit而没有别的**。它不适用于这里讨论的交换机。 – mockinterface

相关问题