Почему в gitflow нет функции pull track?

Допустим, я создал новую функцию с помощью git flow feature start FEATURENAME

затем опубликовал его с git flow feature publish FEATURENAME

Теперь мой коллега хочет сотрудничать со мной над этой функцией, поэтому он

git flow feature pull FEATURENAME

Это создает новую ветку в его локальном репо на основе функциональной ветки в удаленном репо. Однако это не настраивает его локальную ветвь функций на отслеживание удаленной ветви функций, поэтому теперь ему приходится отслеживать эту ветвь вручную.

Какова причина этого дополнительного шага? Почему бы не настроить отслеживание и для команды feature pull?

Какая разница в рабочем процессе между git flow feature pull и git flow feature track.

В каких случаях вы бы использовали каждый из них?


person OpherV    schedule 23.08.2013    source источник
comment
Еще больше сбивает с толку, если ваш коллега делает git pull перед feature pull.   -  person dashesy    schedule 04.01.2014
comment
Я хочу использовать git-flow, но мне также нужно решить, как сделать часть сотрудничества функций, поэтому я назначу вознаграждение за это, надеюсь, чтобы получить лучшее представление.   -  person dashesy    schedule 04.01.2014


Ответы (2)


Похоже, вы используете git flow feature pull, где вы должны использовать git flow feature track, так как это создает локальную ветвь, которая отслеживает удаленную.

Я действительно не могу понять, почему я когда-либо использовал git flow feature pull. Он создает локальную ветку без настроенного отслеживания, и я не знаю, почему это было бы полезно! Это также плохое название, поскольку извлечение должно включать слияние, а это не так.

person naomi    schedule 04.09.2013
comment
Довольно запутанно иметь git flow feature [pull, track, checkout]. - person Drake Guan; 14.10.2013
comment
Разве {{pull}} не используется, когда вы уже отслеживаете ветку и просто хотите получить и объединить? - person acme; 15.10.2015

Этот ответ от brainimus иллюстрирует совместный аспект функциональной ветки, используя аспект запроса на вытягивание GitHub, который облегчает часть проверки кода и обсуждения:

  1. Создайте функциональную ветку: git flow feature start module_1
  2. Код обновляется в функциональной ветке
  3. По мере того, как изменения фиксируются, они отправляются на GitHub (или один раз в конце, если предпочтительнее).
  4. Когда функция завершена, в GitHub открывается запрос на вытягивание, сравнивающий develop и ветку функции module_1.
  5. Команда просматривает запрос на включение и делает комментарии
  6. Любые изменения из запроса на вытягивание вносятся в ветку функций.
  7. Как только все изменения будут включены в ветку функций, ветка функций будет завершена: git flow feature finish module_1
  8. Ветка develop отправляется на GitHub (GitHub автоматически пометит запрос на вытягивание как закрытый/объединенный, когда это произойдет)

Это оставляет проблему закрытия этой ветки:

Кто когда-либо запускал git flow feature finish module_1, будет иметь возможность удалить свою локальную ветвь функций, но любой другой, кто проверил ветвь, должен сделать это вручную, если они хотят.

Я бы порекомендовал git fetch --prune, тем более, что в Git 1.8.5 вы можете установить этот шаг "сокращения" в своей конфигурации: простой git fetch удалит вашу функциональную ветку, если она была удалена на стороне сервера (кто-то другой сделал git flow feature finish)


Отслеживание gitflow, если AVH edition просто извлеките и отследите ветку, то есть убедитесь, что локальная ветка становится локальной веткой для отслеживания, с < связанная с ним href="https://stackoverflow.com/a/6244487/6309">восходящая ветвь (ветвь удаленного отслеживания).
То есть она устанавливает вверх branch.<name>.remote и branch.<name>.merge.

Если вы делаете git flow feature pull (для новой ветки локальной функции), но на самом деле имеете в виду git flow feature track, все, что вам нужно сделать, это сделать свой существующая ветвь отслеживает восходящую ветвь:

git branch -u origin/feature

В общем:

  • вы начинаете с git flow feature track,
  • затем вы обновляете свою локальную ветку функций с помощью git flow feature pull
  • вы переключаетесь между ветвями функций с помощью git flow feature checkout

Как упоминалось в "Начало работы — Git-Flow":

git flow feature pull

Это будет сделано, когда несколько человек работают над функцией вместе.
Вам следует использовать эту команду, если вы хотите выполнить извлечение ветки удаленной функции следующим образом:

git flow feature pull [alias] [featureName]

Используя эту команду, вы получите исходный код, который был отправлен вашими товарищами по команде, и их изменения будут автоматически объединены в вашу локальную ветку.
Если возникнут конфликты, вам не повезет или счастливчик, который занимается разрешением этих конфликтов.

person VonC    schedule 05.01.2014
comment
Также есть какие-либо советы по использованию официального git-flow или AVH Edition? ‹br› Недавно я запутался в ветвях функций, которые расходятся после git pull, и хочу ввести некоторую процедуру для нашей команды. - person dashesy; 05.01.2014
comment
@dashesy я подробно описал различия между gitflow feature branch [pull, track, checkout] - person VonC; 05.01.2014
comment
@VonC На самом деле это не решает вопрос о том, почему кто-то когда-либо захочет pull вместо track (и к настоящему времени с опытом я пришел к выводу, что нет реальной причины делать pull). Первая часть вашего ответа вообще не имеет отношения к теме. По поводу второй части - команды gitflow feature push нет. - person OpherV; 05.01.2014
comment
@dashesy немного не в тему, но у меня гораздо лучший опыт работы с версией AVH, которая поддерживается и сегодня. Похоже, что nvie перестала заботиться об исходном репозитории gitflow, поскольку последнее обновление было выпущено более года назад и содержит около 200 нерешенных проблем и около 60 запросов на включение. - person OpherV; 05.01.2014
comment
@OpherV извините за опечатку: я имел в виду тянуть, а не толкать. После того, как вы отследили, вы можете сделать gitflow feature pull, чтобы поддерживать актуальность вашего локального филиала. И я ссылаюсь на AVH. - person VonC; 05.01.2014
comment
@OpherV Я добавил раздел, объясняющий использование команды git flow feature pull. - person VonC; 05.01.2014
comment
На самом деле, если у вас уже есть отслеживаемая ветвь функции, вы можете просто git pull. Нет необходимости в более длинном и громоздком git flow feature pull [alias] [featureName] :) - person OpherV; 05.01.2014
comment
@OpherV не уверен, если вы читали «Getting Started — Git-Flow»: если вы выполняете извлечение из ветки функций с помощью обычной команды «git pull», это ломает вашу ГОЛОВУ, и по какой-то причине очень трудно вернуться к точке где вы сможете продвигать любые внесенные изменения или даже выполнять функции в будущем. Он добавляет: Мой совет при работе с Gitflow — использовать его команды везде, где это возможно. - person VonC; 05.01.2014
comment
@VonC спасибо за обновление, да, ключ, кажется, начинается с feature track. - person dashesy; 05.01.2014
comment
@OpherV Да, в версии AVH также есть дополнение bash, которое очень помогает и, кажется, лучше поддерживается. Если, например, feature pull когда-либо будет исправлено на track, издание AVH кажется лучшим местом для регистрации проблемы. - person dashesy; 06.01.2014
comment
Серьезный вопрос, nvie прекратили разработку или это уже сделано? - person krystan honour; 12.01.2016
comment
@krystanhonour github.com/nvie/gitflow/pull/419/files = › github.com/petervanderdoes/gitflow - person VonC; 12.01.2016