gpt4 book ai didi

git - 为什么 git 显示两个明显相同的添加文件之间存在冲突?

转载 作者:IT王子 更新时间:2023-10-29 01:00:06 26 4
gpt4 key购买 nike

我有一个在 TFS 中启动的项目,然后转移到 Git。不幸的是,将它移动到 Git 的人只是 checkin 了当前文件,而不是使用 git-tfs。我正在尝试在我使用 git-tfs 从 TFS 提取的提交之上重新设置他在 Git 中的新提交。

为此,我只是将他的提交重新定位在 git-tfs 提交之上。 (我知道这会弄乱远程 Git 分支,但我们是一个小团队,不会有问题的。我也尝试过 cherry-picking,但我遇到了同样的问题。)

我遇到的问题是一组看起来像这样的冲突:

<<<<<<< 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 无法自行判断这两个文件是否相同?即使我在 rebase 时使用 --ignore-whitespace,Git 仍然会显示数十个看起来相同的文件。我不知道如何解决这个问题。

最佳答案

应该是行尾的区别,如ebneter评论。
很久以前我已经详细说明了 git merge 如何不善于忽略这些差异(与空格差异相对):
"Is it possible for git-merge to ignore line-ending differences? "

这就是为什么异构环境中的存储库需要一致 eol 转换策略的原因。 请参阅“Distributing git configuration with the code”。

关于git - 为什么 git 显示两个明显相同的添加文件之间存在冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com