Pull (git pull
) означает выборку, затем выполните вторую команду, обычно слияние: , то есть git fetch
затем git merge
. Таким образом, слияние происходит от второй команды Git, которая запускается git pull
.
Поскольку вы не хотите слияние, не запускайте git merge
. Это означает: не запускать git pull
. Поскольку git pull
на самом деле просто две команды Git, запустите первую самостоятельно: git fetch
.
Затем, получив новый коммит D
, вы хотите сделать тот же вид сброса, что и ваш форс-пуш и ваш git reset
. В этом случае это означает, что вы захотите запустить:
git reset --hard origin/master
(или любое другое имя удаленного отслеживания origin/
, соответствующее вашей текущей ветке). Будьте осторожны с git reset --hard
, который стирает любую незавершенную работу, которую вы выполнили: сначала запустите git status
, чтобы убедиться, что у вас нет такой работы или вам удобно ее отбрасывать.
(я рекомендую избегать git pull
в целом. Если вы делаете хотите git merge
после вашего git fetch
, запустите его самостоятельно. Но это отдельная проблема.)