1
我有一些混乱的情况。我的公司使用svn,但是我在我的Windows和OSX计算机上使用git-svn进行本地开发。我试图让Windows机器能够从OSX笔记本电脑上进行推送和拉出,并且在拉OSX本地分支时我点击了“没有普通提交”。 基本事实:git-svn在windows和osx上产生不同的哈希值
- Windows和OSX两者都有一个git-svn的回购跟踪SVN主干
- 两个回购协议是最新的更新和显示修订版10作为最新的日志信息
git log
将消息显示为相同的作者哈希,但提交哈希是不同的
这是什么导致“没有公共提交”的问题,但为什么哈希值不同?如果这是行结束的问题,或者区分大小写的文件名问题,我该如何让git找到差异。
注意:这是一个巨大的(1.8GB)回购,所以我可能无法手动修复或比较文件。
所有提交哈希不同,或只是最新的?你可以在两个仓库中运行'git rev-list'来获取提交散列列表。 – 2012-03-08 01:47:05
我猜所有的都不同于“不共同承诺”位。用* first * commit(没有父母的那个)的sha尝试'git cat-file -p $ SHA'。树是唯一的区别吗?如果是这样,你可以使用'git ls-tree -r $ SHA'来获取树中每个条目的哈希值,并且可以比较两个条目中的值,看看有什么不同。 – 2012-03-08 01:51:56
Kevin,这两个版本库的第一次提交有不同的svn版本。这意味着,如果Win开始@ 5,并且OSX开始@ 10,Win @ 10将会有一个父项,而OSX @ 10将不会,这样就会抛出散列并破坏下游的所有内容。这可能是问题所在。 Git固有的抗篡改手段意味着我不能从Win中删除早期的历史记录,因此它也从10开始。我必须重新检查,对吗? – 2012-03-08 02:08:51