找到两个git存储库在没有git历史记录的情况下分叉的位置

时间:2015-02-22 06:50:59

标签: git github

我希望找到这两个存储库分叉的确切位置,以便我可以看到对原始代码进行了哪些更改。

https://github.com/apache/cassandra

https://github.com/wlloyd/eiger

第二个没有git历史记录。我已经确定它不是任何版本的分支。有一些文件,如CHANGES.txt(我很确定)自从分叉后没有被修改过,也许这有帮助。也许有一个聪明的差异技巧?

1 个答案:

答案 0 :(得分:2)

没有历史,在制作分叉时几乎不可能找到它。

但是,如果您只对两个代码库之间的更改感兴趣(例如:fork和原始repo的当前master),您可以执行以下操作:

  • 在本地克隆两个repos(我假设它们是从同一个本地目录克隆的)
  • 运行diff -r cassandra eiger | grep -v .git(也许您可以从diff -rq cassandra eiger | grep -v .git开始了解受影响的文件)

现在,如果你想大致了解fork的制作时间,你可以尝试在原始repo中找到提交,这样可以最大限度地减少diff的数量。你可以尝试类似的东西:

cd cassandra
for SHA_1 in $(git rev-list master); do
  git checkout $SHA_1
  pushd ..
  echo -n $SHA_1\; >> diffs.csv
  diff -r cassandra eiger | grep -v .git | wc -l >> diffs.csv
  popd
done

现在你只需要找到最小化第二列的行