我有一个在TFS中启动的项目,然后移至Git。不幸的是,将其移至Git的人只是签入了当前文件,而不是使用git-tfs。我正在尝试使用git-tfs从TFS提取的提交基础上,在Git中重新建立他的新提交。
为此,我只是在git-tfs提交基础上重新调整他的提交。 (我知道这会弄乱远程的Git分支,但我们的团队很小,没关系。我也尝试过尝试摘樱桃,但遇到了同样的问题。)
我遇到的问题是一系列看起来像这样的冲突:
<<<<<<< HEAD
namespace OurNiftyProject
{
public enum CardType
{
Visa = 0,
MasterCard = 1
}
}
||||||| merged common ancestors
=======
namespace OurNiftyProject
{
public enum CardType
{
Visa = 0,
MasterCard = 1
}
}
>>>>>>> Add a bunch of stuff.
[这似乎是在TFS端添加了这些文件的提交与在Git端添加了这些文件的提交之间的冲突(因为Git存储库开始为空)。
逻辑上可能是跳过此提交,但是其中有一些新文件(例如,数百个文件中有十个)。当然,那些不会引起冲突。
为什么Git不能自己弄清楚两个文件是相同的?即使我在重新设置基准时使用--ignore-whitespace
,Git仍会显示许多类似的文件。我不知如何解决此问题。
它应该与行尾差异有关,如ebneter注释。很久以前,我已经详细介绍了git merge如何不善于忽略这些差异(与空白差异相反):“ Is it possible for git-merge to ignore line-ending differences?”
我正在做类似的事情,只是发现“ -X ignore-space-at-eol”。它可用于合并和变基。似乎在做正确的事情,但对我来说却使之死亡缓慢。
我刚遇到这个问题,紧接着是这篇文章,以意识到这也是我的行尾场景。
如果可以排除由于行尾不同而造成的不可见变化,则可能要检查文件是否具有不同模式(例如,是否设置了可执行位)] >>。文件模式更改时,Git会以差异形式显示完整文件。