Это зависит от того, какие флаги Джон использует, когда нажимает.
По умолчанию он не будет выдвигаться, потому что глава удаленной ветви (коммит Дана) не является предком ревизии Джона.
С -f
или --force
он просто перезапишет изменения Дэна с изменениями Джона, фактически отменив толчок Дэна - если сервер настроен, по крайней мере, на принудительные нажатия. Многие git-серверы просто отказываются это делать.
Как правило, «правильный» способ сделать это для Джона - попытаться толкнуть нормально. Он увидит ошибку, о которой я упоминаю, и узнает, что кто-то другой внес изменения. Затем он сделает git pull
, чтобы получить изменения Дэна и объединить их со своими собственными. Функция извлечения попытается выполнить слияние, приведет к конфликту в вашем текстовом файле и оставит его для исправления Джона. После того как Джон разрешит конфликт (возможно, сделав файл, содержащий «aBc», а затем используя git add text.txt; git commit
, чтобы сообщить git), его локальный репозиторий будет содержать «коммит слияния», который помечен как включающий оба изменения. Затем он может отправить это на сервер без дальнейших проблем.