GIT—在未知点反转的整个更改集

GIT—在未知点反转的整个更改集,git,github,Git,Github,我遇到过一些很难追踪到底发生了什么的情况。我们有一个“发展”和“大师”分支。新的更改从“master”中获取,然后合并到“development”中,一旦好了,我们将新的分支合并到“master”中 在过去几周的某个时候,在开发过程中发生了一系列巨大的变化。我不知道这是怎么发生的,也不知道这是怎么可能的。不管怎么说,如果我能进入一个文件的历史记录,并看到将其反转的合并,那将是很好的,但它显示的好像上一次合并是一年前的 我能想到这一点的唯一真实方法是逐字逐句地检查提交哈希并将头重置为它们,然后看看

我遇到过一些很难追踪到底发生了什么的情况。我们有一个“发展”和“大师”分支。新的更改从“master”中获取,然后合并到“development”中,一旦好了,我们将新的分支合并到“master”中

在过去几周的某个时候,在开发过程中发生了一系列巨大的变化。我不知道这是怎么发生的,也不知道这是怎么可能的。不管怎么说,如果我能进入一个文件的历史记录,并看到将其反转的合并,那将是很好的,但它显示的好像上一次合并是一年前的

我能想到这一点的唯一真实方法是逐字逐句地检查提交哈希并将头重置为它们,然后看看我在哪里。但这似乎不切实际。有更简单的方法吗

或者,有没有一种方法可以查看过去的合并,并查看哪些文件受其影响?就像合并分支一样,您总是可以在控制台中看到在哪行更改了哪些文件的输出。。但在git文件的历史记录中,这其中的大部分可能不会出现


还有谁知道为什么会发生这种情况?我已经见过好几次了。有时我在合并时捕捉到它。就像我将一个新分支合并到另一个分支中一样,我知道我在上一次提交时只更改了一个文件,但它更改了大量其他文件。Master branch在一系列更新上落后了大约一年,所以我想,出于某种原因,当Master创建了一个新分支并合并到dev中时,它也切换了所有其他文件。奇怪的是,我们总是这样做,而且99%的时间只会更改更改的文件。我不明白

这里有一些git技巧可能对您有所帮助

首先,
gitshow
将向您显示在特定提交中所做的所有更改
git-bull
将向您显示一个文件,并逐行告诉您哪些提交更改了该文件

[在回应评论时添加]:

git diff…
将显示两次提交之间的差异总和。在合并的情况下,这有点奇怪,您可能想做的是沿着
git diff HEAD
git diff HEAD
的路线做一些事情,以查看每个分支给表带来了什么


最后,如果您有一个已知的好的旧提交(假设您是通过
git show
找到的),您可以使用
git bisect
逐步进行二进制搜索,以找到发生错误的提交。

hmm。因此我正在尝试,它似乎没有显示所有的更改。我将回顾前几天的一个复杂提交(合并一个大分支,并在此过程中更改/修复多个文件)。Git show仅显示部分冲突。实际上是20-30个文件被更改了。我也在tower中查看提交&它显示了14个文件,可能是在提交/合并过程中实际接触到的文件???为什么以及如何看到用它修改的文件?我希望得到与我在执行初始git合并branchname时相同的输出。它会显示每个文件。根据,你不能直接通过合并来实现这一点。不过,您可以在两个提交编号之间执行git diff。