Рабочий процесс запроса на извлечение Git, TFS

Рабочий процесс запроса на извлечение Git, TFS

Вот рабочий процесс, который я попробовал реализовать после просмотра этого видеоВидео Git/TFS.

Итак, я создаю ветку из своей ветки разработки

$ git checkout -b my-feature-branch development

Затем я вношу изменения, подготавливаю их, фиксирую и отправляю на сервер TFS.

Теперь, когда я захожу в веб-интерфейс TFS, на сервере у меня есть «my-feature-branch».

Я нажимаю «Новый запрос на извлечение» и создаю PR в разработке, и принимаю этот PR. Этот процесс удаляет «my-feature-branch» на сервере TFS, но он остается на моей локальной машине.

На данный момент все отлично.

Возвращаюсь на локальную машину, переключаюсь из ветки функций:

git checkout development

Удалить местную ветку

  git branch -d my-feature-branch

warning: deleting branch 'my-feature-branch' that has been merged to
         'refs/remotes/origin/test-pr', but not yet merged to HEAD. Deleted branch my-feature-branch (was d525adc).

Получить последние -

git pull -p

Иногда, и я могу выполнять операцию pull перед удалением, удаление не удается, и мне приходится принудительно удалять его.

git branch -D my-feature-branch

Мой рабочий процесс неправильный? Мне нужно сделать какое-то слияние перед удалением? Почему git не знает, что ветка функций была слита как запрос на извлечение после извлечения, и не позволяет мне удалить без ошибок?

решение1

Почему git не знает, что ветка функций была объединена как запрос на извлечение после извлечения, и не позволяет мне удалить ее без ошибок?

Трудно сказать наверняка на основании предоставленной вами информации, но вот два предположения:

  1. Вы уверены, что вытягиваете перед удалением локальной ветки feature? Если нет, то, конечно, в основной ветке не будет новых коммитов.

  2. Как вы объединяете ветку feature? С помощью обычного слияния или с помощью сквош-слияния? Обычное слияние включает коммиты ветки feature в основную ветку, так что Git знает, что все там. Сквош-слияние, OTOH, включает всесодержаниеиз ветки функций, но делает это путем создания нового коммита, и Git не отслеживает тот факт, что новый объединенный коммит был сгенерирован из коммитов ветки функций, поэтому он не считает, что ветка функций была объединена.

(Я настоятельно рекомендуюнет(Использование сквош-слияний. Сохранение исходных коммитов, как это происходит при стандартном слиянии, помогает улучшить работу Git.)

Связанный контент