Существуют ли случаи использования, когда «git push --force» предпочтительнее «git push --force-with-lease»? - PullRequest
0 голосов
/ 12 июня 2018

По умолчанию

  • git push

    отказывается обновлять удаленную ссылку, которая не является предком локальной ссылки, используемой для ее перезаписи

    - т.е. git push не будет обновлять пульт, если он отклонился от ветви до push ed.

  • git push --force

    отключает эти проверки и может привести к потере коммитов в удаленном хранилище;используйте его с осторожностью

    - т. е. git push --force обновит пульт, независимо от того, какие коммиты он имеет на нем или знает ли об этом локальная ветвь отслеживания.

  • git push --force-with-lease

    будет защищать все удаленные ссылки, которые будут обновлены, требуя, чтобы их текущее значение совпадало с веткой удаленного отслеживанияу нас есть для них

    - то есть git push --force-with-lease работает так же, как и git push --force, за исключением того, что произойдет сбой, если обновляемый пульт не соответствует локальной ветви отслеживания, или в другомслова пользователь еще не fetch отредактировал последние изменения на пульте.

Все цитаты из man git-push для git-версии 2.17.1.

Отприведенные выше описания и мои интерпретации, git push --force-with-lease и git fetch, при необходимости кажутся всегда безопаснее, чем git push --force (меньше риск непреднамеренной перезаписи коммитов на пульте).

Есть лиКакие-либо случаи использования, где было бы предпочтительнее использовать git push --force, а не git push --force-with-leasegit fetch при необходимости)?Или git push --force просто существует с таким поведением для обратной совместимости, и git push --force-with-lease теперь является строго более безопасной и, следовательно, предпочтительной альтернативой?

1 Ответ

0 голосов
/ 12 июня 2018

Короткий ответ - нет, никогда не бывает больше , предпочтительно применять силу без аренды.Могут быть случаи, когда вас не заботит поиск текущей стоимости для аренды, и в этом случае регулярная сила и принудительная аренда в равной степени предпочтительнее.

Это скрывает тот факт, чтоесли вы не знаете ожидаемое значение ссылки, вы не можете использовать вариант «с арендой».Так что в этом конкретном смысле, если вы абсолютно уверены , вас не волнует текущее значение, и , вы не хотите беспокоиться о его получении и, еслиВы получили это, просто продолжали бы повторять операцию сравнения и обмена , тогда вам нужно было бы выполнить по крайней мере две операции («получить текущее значение», а затем «форсировать с арендой»), когда одна из них выполнит («форсировать»).«).Так что в этом смысле могут быть некоторые ситуации.Однако на практике эти ситуации можно сосчитать по пальцам одного носа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...