Почему git показывает конфликт между двумя внешне идентичными добавленными файлами?

У меня есть проект, который был запущен в TFS, а затем перемещен в Git. К сожалению, парень, который переместил его в Git, просто проверил текущие файлы вместо использования git-tfs. Я пытаюсь перебазировать его новые коммиты в Git поверх коммитов, которые я вытащил из TFS с помощью git-tfs.

Для этого я просто перемещаю его коммиты поверх коммитов 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 все равно показывает десятки таких файлов, которые кажутся идентичными. Я в недоумении, как это решить.

11
задан Ryan Lundy 30 March 2012 в 21:10
поделиться