Учтите, что я внес изменения в файл в личной ветке, и я хочу, чтобы моя ветка была объединена с другой веткой (скажем, development
). Если кто-то еще внес изменения в те же строки в файле, на который я воздействовал, возникнет конфликт, который мне нужно разрешить, прежде чем моя ветвь может быть объединена. Я обычно делаю git pull origin development
, после чего Git вызывает конфликты и позволяет мне их исправить. После того, как я их исправлю, если я открыл файл вручную без использования git mergetool
, мне нужно git add
файл, чтобы «пометить его как разрешенный», а затем я делаю git commit
и принимаю коммит-слияние по умолчанию сообщение.
На этом этапе изменения, которые я внес в файл, станут единственным источником правды и переопределят изменения, внесенные в ветку development
, так что, надеюсь, я не засорял работу этого человека.
Мой вопрос: откуда Git знает, что это коммит слияния? Я думаю, что он должен знать, потому что, если бы я сделал те же самые изменения в файле, который я сделал во время разрешения конфликта, а затем сделал git add
и git commit
, это по определению был бы конфликт. Пожалуйста, поправьте меня, если мое предположение неверно. Я задумался над этим вопросом, потому что удивлялся, почему мне нужно перенести все различия ветвей в свою ветвь, чтобы разрешить один простой маленький конфликтующий файл.