Git:如何比较分支未知点的文件?

时间:2014-08-25 14:08:51

标签: git

我有一个git存储库,它包含一个项目。 在某个时间点(2013年5月至2013年9月),有人手动复制了repo中的文件而没有修订控制,并对其进行了更改。 与此同时,我的回购已经发生了很多变化。 现在我想看看手动复制文件的其他人所做的更改。他没有合并我的更改,因为他复制了文件,所以我不能将他和我的仓库中的文件分散到当前状态。

那么我怎样才能找到我的存储库与最接近的更改文件匹配的提交并在那时将其区分开来?

编辑:我的问题类似于this question,但我只知道时间范围。

2 个答案:

答案 0 :(得分:0)

  1. 获取其他人的代码:

    git remote add other url-to-other-persons-repo
    git fetch other
    
  2. 获取diff

    git diff other/master
    

答案 1 :(得分:0)

解决方案:正如Matthew Strawbridge suggested,其他问题的解决方案也适用于此。这是我做的:

#!/bin/sh
 for REV in $(git rev-list foreign/master --after=2013-05-01 --until=2013-09-01); do
 git diff --shortstat $REV >> ~/rdiffs.txt;
 echo "$REV" >> ~/rdiffs.txt;
done

然后我在Excel中写了一个vba makro来对结果进行排序:

Sub sort()

Dim Zeile, Nzeile As Integer

For Zeile = 2 To ActiveSheet.UsedRange.Rows.Count Step 2

    Rows(Zeile).Cells(1).Select
    Selection.Cut
    Nzeile = Zeile - 1
    Rows(Nzeile).Cells(2).Select
    ActiveSheet.Paste

Next

For Zeile = 2 To ActiveSheet.UsedRange.Rows.Count Step 1

    Rows(Zeile).EntireRow.Delete

Next

End Sub