Подтвердить что ты не робот

Какая разница между "Push..." и "Push to upstream..." в Eclipse

При использовании "Push to upstream..." в Eclipse новые "локальные" коммиты переносятся в удаленный репозиторий, а рефинансирование удаленной ветки обновляется в локальном репозитории (поэтому master и origin/master ссылаются на то же фиксации).

При использовании "Push..." и добавлении push-ссылки на master в окне мастера (refs/heads/*) новые "локальные" коммиты переносятся в удаленный репозиторий (например, ранее), но удаленная ссылка ref не обновлен в локальном репозитории (поэтому master ссылается на последнюю фиксацию, но origin/master не перемещается).

Какая разница между этими двумя способами работы? Является ли это полезным для конкретных децентрализованных рабочих потоков? Какими будут соответствующие команды git этих двух подходов?

4b9b3361

Ответ 1

Push to Upstream.. толкает вашу ветку, как вы ожидали бы для ветки удаленного слежения.

Нажмите... открывает диалог и позволяет указать, какие refspecs вы должны отжимать, включая теги, специальные случаи, такие как HEAD: refs/heads/master и т.д.

То, что он не обновляет origin/master, кажется мне ошибкой, или, может быть, они ожидают, что следующая выборка обновит происхождение. Я бы открыл ошибку в https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EGit&component=UI

PW

Ответ 2

Как предложил Павел, я открыл bug на EGit Bugzilla и получил объяснение там.

Когда используется "Push...", EGit PushWizard вызывает команду JGit с URI репозиториев, а не их имена. Поэтому JGit не может обновлять ветвь удаленного отслеживания.

Ошибка все еще открыта, поэтому мы можем надеяться, что в будущей версии "Push...", выполненной из "Конфигурированного удаленного репозитория", будет обновлена ​​ветка удаленного отслеживания.

Ответ 3

Нажмите... открывает диалог и позволяет указать, какие refspecs вы должны отжимать, включая теги, специальные случаи, такие как HEAD: refs/heads/master и т.д.

Дополнительные настройки с помощью push доступны из представлений Git Repositories или Package Explorer, но вы должны выбрать правильный вариант.

От Git Repositories:

  • Щелкните правой кнопкой мыши имя репо.
  • Выберите Push
  • Нажмите Next

ИЛИ

  • Разверните папку Remotes.
  • Щелкните правой кнопкой мыши origin
  • Выберите Configure Push...
  • Нажмите кнопку Advanced

(Вы также можете развернуть origin, затем щелкните правой кнопкой мыши по Push и перейдите к Configure Push..., затем нажмите кнопку Advanced)

В представлении Package Explorer

  • Щелкните правой кнопкой мыши папку проекта (верхний элемент).
  • TeamRemotePushNext (эквивалентно нажатию кнопки "Дополнительно" в приведенных выше шагах.)

ИЛИ

  • Щелкните правой кнопкой мыши папку проекта (верхний элемент).
  • TeamRemoteConfigure Push to Upstream...