Вот рабочий процесс, который я попробовал реализовать после просмотра этого видеоВидео 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 не знает, что ветка функций была объединена как запрос на извлечение после извлечения, и не позволяет мне удалить ее без ошибок?
Трудно сказать наверняка на основании предоставленной вами информации, но вот два предположения:
Вы уверены, что вытягиваете перед удалением локальной ветки feature? Если нет, то, конечно, в основной ветке не будет новых коммитов.
Как вы объединяете ветку feature? С помощью обычного слияния или с помощью сквош-слияния? Обычное слияние включает коммиты ветки feature в основную ветку, так что Git знает, что все там. Сквош-слияние, OTOH, включает всесодержаниеиз ветки функций, но делает это путем создания нового коммита, и Git не отслеживает тот факт, что новый объединенный коммит был сгенерирован из коммитов ветки функций, поэтому он не считает, что ветка функций была объединена.
(Я настоятельно рекомендуюнет(Использование сквош-слияний. Сохранение исходных коммитов, как это происходит при стандартном слиянии, помогает улучшить работу Git.)