2016-10-13 3 views
3

Иногда я вижу в статьях приказывает: git pull -p
Но я не нашел информацию о том, что в official documentationКак git-pull корпоративный с git-fetch (был: что означает git-pull option `-p`)?

Что этот вариант означает?

UPD

Как отметил @torek в -p параметр передается в git fetch. И -p здесь означает:

-p
--prune
перед загрузкой удалите все ссылки удаленного отслеживания, которые больше не существуют на пульте дистанционного управления.

Но я не понимаю, как git-pull корпоративный сотрудничать с git-fetch?
Как я могу выяснить, как и какие git опции попадают в одну команду в другую?

+1

Команда 'git pull' не имеет собственной опции' -p'. На самом деле происходит то, что '-p' передается в' git fetch'. Не уверен, кто это проигнорировал: правильно, что '-p' не задокументировано должным образом (на мой взгляд,' git pull' сам не задокументирован правильно, но 'git pull' даже не существует :-)). – torek

+0

@torek Возможно, те люди, которые думают, что '-p' означает' --patch' и отмечают этот вопрос как дубликат –

+0

@KevinB Нет, в этом вопросе вы связались с '-p' означает' --patch' –

ответ

2

Возможно, это должно быть вторым вопросом теперь:

Но я не понимаю, как мерзавец-Pull Юра с git-fetch? Как я могу понять, как и какие опции git попадают в одну команду другому?

(я думаю, что вы имеете в виду "co-operate" , а не "корпоративный" здесь.)

git pull команда used to be a shell script. В сценарии легко определить, какие опции передаются в git fetch, которые передаются в git merge или git rebase и которые потребляются напрямую.

Начиная с версии Git 2.6.0 команда pull была переписана на C.Это still possible to tell, какие параметры есть, но теперь это несколько сложнее, так как вы должны смотреть дальше, чтобы найти текстовые варианты написания каждой опции. (Это вторая ссылка может распадаться с течением времени, как это имеет GitHub посмотреть текущую версию исходного файла и номер строки может измениться.)

Я сам рекомендую избегать git pull: запустить git fetch, а затем проверить результат, а затем выберите git rebase (обычно) или git merge (иногда) по мере необходимости. Я также сохраняю псевдоним, git mff, который расширяется до git merge --ff-only, и я, как правило, запускаю git fetch && git mff: если ускоренная перемотка не удалась, я, вероятно, хочу переустановить, если только я не захочу объединиться, и эта последовательность (выборка и слияние-if-fast -forwardable) либо успешно (в этом случае rebase vs merge не имеет никакого значения, и мы закончили) или не сработает (и в этом случае пришло время проверить).

(Это может быть стоит добавить псевдоним git fff, который работает git fetch && git mff ... :-))


Это можно записать в виде "сотрудничать", без дефиса, или даже как " coöperate ", с diaeresis над вторым o. Диарезис был распространен в английском тексте в тонкой печати (и The New Yorker still uses it!), Но с пишущими машинами, неспособными произвести его, стал менее распространенным в начале и середине 1900-х годов. Теперь, когда компьютеры имеют Unicode и умлауты, которые технически отличаются друг от друга, но символически идентичны, я думаю, что мы должны восстановить диарезию до предвосхищения. :-)

+0

Чем псевдоним занят «функцией обработки потока» на моей env :-D –

1

Команда git pull - это сокращенная команда, которая интерпретируется как «git fetch» ​​плюс команда git merge FETCH_HEAD. Если вы даете флаг -p для pull, это фактически команда -prune, которая запускается с частью команды git fetch. Это удаляет (все) все ветви удаленного отслеживания в вашем локальном репозитории, которые больше не существуют по происхождению.

+0

Ha. Кто-то редактировал ваш вопрос, когда я отвечал на него. :) Я надеюсь, что мой ответ все еще поможет прояснить 2 части команды «тянуть» для вас? – JGTaylor

+0

Несмотря на плохое форматирование, ваш ответ полезен. +1 ;-) –

0

Кажется, ответ here

git-pull и git-fetch сходство: оба используются для загрузки новых данных из удаленного хранилища.

  • git-fetch действительно только загружает новые данные из удаленного хранилища
  • git-pull не только загружает новые данные; он также непосредственно интегрирует новых данных в ваши текущие файлы рабочей копии (скачать + слияния)
Смежные вопросы