在VSO git存储库中,关于文件历史记录,有“简单历史记录(默认)”、“第一个父项”、“完整历史记录”和“完整历史记录(简化合并)”等过滤选项。这些选项之间有什么区别?‘简单历史记录’和“完整历史记录”之间有什么区别。
在简单的历史记录中,我们有类似下面的提交。A--B--C--D--E--F但是,在我们的一个开发人员运行命令"get reset --hard one / there“之后,在简单的历史中,只有A--B--C--D提交。缺少E和F。在“完整历史”中,我们仍然可以看到提交A--B--C--D--E--F。真正的问题是,当运行'git pull‘来拉取最新的代码时,我们只得到提交D的代码更改,而不能拉出E和F中的代码更改。
我们该怎么办?因此,我们在简单的历史记录中获取E和F,并且当运行'git pull‘时,E和F中的代码更改可以被拉到本地磁盘。
发布于 2017-03-02 18:20:23
Git历史简化可能是一头令人困惑的野兽。99%的时间你甚至不知道它的存在,但偶尔它会从Git的黑暗角落跳出来咬你。在本文中,我们将探讨什么是历史简化,以及它如何在查看文件历史时引起混淆。
让我们从一个常见的场景开始:
您将更改推送到文件,然后将更改合并到master中。你的一些同事也会将他们的分支合并到master。过一段时间再回来,会发现您的更改丢失了。为了寻找罪魁祸首,你去查看文件历史记录并注意到...您的更改甚至都没有列出!?这里发生的情况是,Git提交历史是一棵树,有时按时间顺序排列的历史与实际的文件树历史并不相同。在合并提交将文件恢复到其原始状态的情况下,这一点尤其正确。在这种情况下,默认的历史视图实际上不会显示所有更改,因为从技术上讲,文件并没有更改。
在上面的场景中,Git意识到它可以简化历史记录,并且您最可能查找的“更改”将从日志中删除。
除非你以前遇到过它,否则结果往往是一堆乱七八糟的事情,想知道我的修改到底到哪里去了?
来源和更多详细信息:https://www.visualstudio.com/en-us/articles/git-log-history-simplification
https://stackoverflow.com/questions/42551354
复制相似问题