我遇到与this question中的问题类似的问题,但有一个根本区别:
我们从客户那里获得了代码,用于评估并在签订合同之前开始工作。他们给了我们纯粹的代码,没有git repo。我们从它创建了一个git repo并使用了一段时间。
随着项目获得批准,我们可以访问他们对该项目的git repo。该代码也在不断发展。我应该在他们的回购中创建一个新的分支,并将我们的工作重新组合到新的分支中。
阅读上述问题,我了解了graft,其中一个回购B可以通过使用graft
来表示B的基数是A的一些提交,但是我可以拥有父回购A.我不知道A(他们的回购)的哪个提交是B(我的回购)的基础。
这是一个非常奇怪的情况,其中两个repos可以被认为是不同的 - 因为我不知道可能是第二个的父级的提交,但是第二个中的更改应该重新绑定到第一个中的文件。
答案 0 :(得分:2)
将您的问题解释为“使用他们发送给您的来源树在其存储库中查找修订”,
ours=$( git rev-parse our_commit_of_their_source^{tree} )
git rev-list --pretty=format:'%h %T %s' | grep $ours
如果没有任何相同的树,您至少可以有效地列出与git diff-tree --name-status $ours $theirs
存在差异的文件,以查看提交中有多少文件与您的文件不同,这是Robin建议的一种方法。也许用'-b`做差异树来忽略只有空格的变化。
答案 1 :(得分:1)
您可以在某个合理的日期范围内搜索所有修订版本,以便在其回购中找到匹配的修订版本。当然,您必须忽略.gitignore
中的文件。
但合理的第一个猜测是,修订将在他们向您发送代码的那一天进行...所以您只需要检查一些修订。
您可以使用git diff HEAD
来检查差异。