Почему не отслеживает "git flow feature pull"?

Допустим, я создал новую функцию с 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,

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

2 ответа

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

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

Этот ответ от Andy иллюстрирует совместный аспект ветви функций с использованием аспекта запроса извлечения 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 вы можете установить этот шаг "prune" в вашей конфигурации: простая выборка git удалит вашу ветвь функций, если она была удалена на стороне сервера (кем-то, кто делает git flow feature finish)


Функция gitflow отслеживает, если редакция AVH просто извлекает и отслеживает ветвь, то есть убедитесь, что локальная ветвь становится локальной ветвью отслеживания, с которой связана восходящая ветвь (удаленная ветвь отслеживания).
То есть он устанавливает 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

Как упомянуто в " Getting Started - Git-Flow":

git flow feature pull

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

git flow feature pull [alias] [featureName]

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

Другие вопросы по тегам