Git Corrupt File Fix - PullRequest
       10

Git Corrupt File Fix

0 голосов
/ 15 февраля 2012

Ошибка на моем сервере говорит: «Ошибка разбора: синтаксическая ошибка, неожиданный T_SL».Я получаю эту ошибку после слияния этого конкретного файла с кем-то, кто работает над этим файлом.Кажется, неожиданная ошибка T_SL относится к побитовым операторам <<.Теперь я уверен, что это связано со слиянием и, глядя на репозиторий git, я не вижу «<<» в этой строке.Я имел эту ошибку давным-давно и обнаружил, что файл был поврежден, но не помню исправления.Любая помощь хороша. </p>

1 Ответ

0 голосов
/ 15 февраля 2012

Если вы уже выдвинули содержимое, вполне вероятно, что шаблон <<, который вы определили как побитовые операторы , на самом деле является мерзавской нотацией конфликта слияния (что Borealid пытался сделать рассказать вам со своим комментарием ).

Если это было выдвинуто, конфликт, который произошел раньше, не был решен правильно (и кто-то выдвинул что-то, не проверив, что оно по крайней мере работает без серьезных ошибок).

Пример отмеченного конфликта (а также справки по разрешению конфликтов) можно найти в git manual :

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

Это можно прочитать так:

  • в файле есть конфликт file.txt
  • в редакции HEAD, в строке написано Hello World
  • в редакции 77976da, в строке написано Goodbye

Теперь ваша задача решить, какие из них использовать.

Принятый ответ на вопрос Как разрешить конфликты слияний в Git? также указывает на руководство по git, так что, похоже, его стоит прочитать. Но также и другие ответы на упомянутый вопрос содержат многочисленные подсказки о том, как бороться с конфликтами слияния.

Например , чтобы сохранить Hello World, скажите git

git checkout --ours file.txt

, чтобы сохранить Goodbye, вместо этого используйте

git checkout --theirs file.txt
...