什么';这是';简单历史(默认)和#x27;和';完整历史';在VSO git文件历史记录中?

什么';这是';简单历史(默认)和#x27;和';完整历史';在VSO git文件历史记录中?,git,azure-devops,Git,Azure Devops,在VSO git存储库中,在文件历史记录上,有“简单历史记录(默认)”、“第一父级”、“完整历史记录”和“完整历史记录(简化合并)”的筛选选项。这些选项之间有什么区别?“简单的历史”和“完整的历史”有什么区别 我们在《简单历史》中展示了如下内容。 A--B--C--D--E--F 但是,在我们的一个开发人员运行命令“get reset--hard origin/develope”之后,在简单的历史记录中,只有提交A--B--C--D.E和F丢失。在“完整历史记录”中,我们仍然可以看到提交A--B

在VSO git存储库中,在文件历史记录上,有“简单历史记录(默认)”、“第一父级”、“完整历史记录”和“完整历史记录(简化合并)”的筛选选项。这些选项之间有什么区别?“简单的历史”和“完整的历史”有什么区别

我们在《简单历史》中展示了如下内容。 A--B--C--D--E--F 但是,在我们的一个开发人员运行命令“get reset--hard origin/develope”之后,在简单的历史记录中,只有提交A--B--C--D.E和F丢失。在“完整历史记录”中,我们仍然可以看到提交A--B--C--D--E--F。真正的问题是,当运行“git pull”来提取最新代码时,我们只得到提交D的代码更改,而不能提取E和F中的代码更改


我们该怎么办?因此,我们在简单历史中得到E,F,当运行“git-pull”时,E和F中的代码更改可以被拉到本地磁盘。

git-history简化可能是一个令人困惑的问题。99%的时候你甚至不知道它的存在,但偶尔它会从Git的黑暗角落跳出来咬你。在本文中,我们将探讨什么是历史简化,以及它在查看文件历史时如何引起混淆

让我们从一个常见的场景开始:

将更改推送到文件中,然后将更改合并到主文件中。 您的一些同事还将其分支合并为master。 您过了一段时间回来,发现您的更改丢失了。 寻找罪魁祸首,你去查看文件历史记录并注意。。。您的更改甚至没有列出!? 这里发生的是Git提交历史是一个树,有时按时间顺序排列的历史与实际的文件树历史不同。在合并提交将文件还原回其原始状态的情况下尤其如此。在这种情况下,默认的历史视图实际上不会显示所有更改,因为从技术上讲,文件没有更改

在上面的场景中,Git意识到它可以简化历史,并且您最可能寻找的“更改”将从日志中删除

除非你以前遇到过这种情况,否则结果往往是头发拉扯,想知道我的变化到底到哪里去了


来源和更多详细信息:

在我的例子中,有人将更改的文件夹(在提交E和F中)添加到.gitignore文件中,然后提交/合并到主分支。问题是,如果提交/合并包含代码还原/回滚,那么此回滚更改是否会显示在提交详细信息中?在我的情况下,这不会出现。@AlexCube如果E和F与您查看的文件无关(
A-B-C-D-E-F
),则提交E和F不应显示在文件历史记录中。因此,请检查您查看一个文件或整个repo的历史记录。您的分支结构是什么(git log的输出--oneline--decoration--graph--all)?您使用
A-B-C-D-E-F
查看文件历史记录的分支是什么?看来这不是开发部门。