То, что сказал Торек, правильно, но я просто хочу еще раз подчеркнуть основные моменты, поскольку, похоже, именно здесь вы боретесь.
Когда вы объединяете две ветви, каждая ветвь представляет одну историюусилие или изменения.Например, представьте, что вы и ваш коллега Боб оба работаете над одним и тем же проектом с разных компьютеров в одно и то же время.
Когда вы начинали, у вас была точно такая же версия, что и у Боба.Но поскольку вы работаете независимо, легко заметить, что вы и Боб могли бы одновременно изменить файл README .Возможно, вы заметили, что в первом предложении есть слово с ошибкой и исправили его.Тем временем Боб решает, что введение вводит в заблуждение, поэтому он переписывает первые два абзаца.В версии Боба орфографическая ошибка по-прежнему существует, но теперь она находится на другой линии.
Теперь существует конфликт между вашей версией Боба и README.Когда вы и Боб решите объединить свои изменения вместе, этот конфликт будет обнаружен git merge
, и он будет жаловаться вам.Вы не хотите, чтобы слияние отбросило ваши изменения, так как Боб не заметил орфографическую ошибку.Но вы тоже не хотите отказываться от работы Боба.Поэтому решение объединить изменения вашего README и README Боба должен принять человек.
Теперь, в этом случае, вы и Боб изменили одну и ту же строку README.Но что, если вы коснулись разных строк?В качестве меры предосторожности, git merge
все равно будет жаловаться, если ваши измененные строки достаточно близки к измененным строкам Боба, потому что все еще может быть конфликт.
Но git merge
не может (и не может) обнаружить все возможныеконфликт.Иногда результат слияния не имеет смысла, хотя git merge
не жаловался.Например, если в то же время, когда вы исправляете орфографическую ошибку, вы также добавляете предложение в конце README, которое ссылается на что-то, упомянутое в первом абзаце, ваши изменения могут не иметь смысла вместе с Бобом.Однако git не может сказать, что последняя строка и первый абзац связаны, потому что он не может угадать значение или семантику файла, который он объединяет.То же самое относится и к кодовым файлам.