当前位置:  开发笔记 > 开发工具 > 正文

我如何比较两个git存储库?

如何解决《我如何比较两个git存储库?》经验,为你挑选了4个好方法。

我有两个不同的CVS存储库导出到git.他们在某些方面有所不同,我正在调查原因.该开发线可以追溯到几年,并且有数万次提交.

在开发行的开头,每个提交的SHA1 ID都是相同的,告诉我git-cvsimport在读取cvsps和import的结果时非常一致.

但是在第一次提交和昨天之间的某个时间,SHA1 ID开始出现分歧.我想通过比较每个存储库中的提交ID列表并查看缺少的内容来找出它的位置.这样做有什么好的工具或技术吗?



1> ephemient..:

由于两个git存储库的开头相同,因此可以将两者都放到同一个工作存储库中.

$ git remote add cvsimport-a git://.../cvsimport-a.git
$ git remote add cvsimport-b git://.../cvsimport-b.git
$ git remote update
$ git log cvsimport-a/master..cvsimport-b/master  # in B, not in A?
$ git log cvsimport-b/master..cvsimport-a/master  # in A, not in B?



2> Jason Punyon..:

为什么不把每个repo的git log记录到自己的文件中并进行比较?最接近文件底部的差异是他们开始分歧的地方......


在两个存储库开始分歧的地方,距离告诉我自那个分歧以来产生的差异还有很长的路要走.

3> Brian Campbe..:

在您的一个回购中,执行以下操作:

$ git remote add other-repo git://.../other-repo.git
$ git remote update
$ git log other-repo/master...master
  # or maybe:
$ gitk master... other-repo/master

这为您提供了两个回购之间的对称差异; 这将显示一个仓库中的所有提交,而不是另一个仓库.



4> CB Bailey..:

显而易见的方法是克隆一个存储库,将另一个存储库的主分支的尖端读取到克隆中,并在两个提示上使用git merge-base来查找共同的祖先.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有