2014-10-31 3 views
0

Так что я только что узнал, что git pull делает несколько вещейЧто делает `git push` под капотом?

  1. fetch обновить локальный дистанционный зеркалу
  2. merge слиться местное отделением с обновленным локальным дистанционным зеркалом

Но что о push это делает несколько вещей под капотом, похожие на pull?

ответ

1

Вы можете тростниковые официальная документация мерзавца на http://git-scm.com/docs/git-push
Там вы можете увидеть, что

мерзавец толчок

не делать несколько вещей, которые шаг за шагом

4

Не действительно.

В самом техническом смысле, да, он делает несколько вещей, но в отличие от pull (где вы могли бы разумно сделать fetch и merge как два различных действий) все вещи, которые push делает, как правило, всегда делается вместе:

  1. Пакуйте множество фиксаций, которое не на удаленном хосте
  2. Отправить запакованные фиксации на удаленный хост
  3. Update удаленной ссылка, чтобы указать на коммишь ты нажал на него

Выполнение # 3 на самом деле не имеет смысла, не делая также # 1 и # 2, и делать # 1 и # 2 действительно ничего не сделает, не делая также # 3.

push никогда не сливается - вы либо перезаписываете дистанционный рефлектор, либо ваш отказ не работает.

+0

Он эффективно выполняет 'git merge -ff-only' для обновления удаленной ссылки. –

+0

@ Zeeker, который на самом деле не является слиянием (просто проверка 'branch --contains'). – Amber

Смежные вопросы