Управление ветками -- Удаление и переименование
По мере работы с Git ветки накапливаются. Хорошая гигиена веток означает удаление веток после слияния и переименование веток, когда их назначение меняется.
Удаление слитой ветки
После слияния ветки с функциональностью её следует удалить для поддержания порядка:
git branch -d feature
Флаг -d -- это безопасное удаление -- Git откажет, если в ветке есть неслитая работа.
Принудительное удаление неслитой ветки
Если вы хотите удалить ветку, которая никогда не была слита (отказываясь от работы):
git branch -D experiment
Заглавная -D означает "удалить в любом случае". Используйте с осторожностью -- коммиты могут стать недоступными.
Переименование ветки
Переименование ветки, на которой вы сейчас находитесь:
git branch -m new-name
Переименование любой ветки (не обязательно быть на ней):
git branch -m old-name new-name
Просмотр списка веток
Просмотр всех локальных веток:
git branch
Просмотр веток с последним сообщением коммита:
git branch -v
Просмотр веток, слитых в текущую ветку:
git branch --merged
Просмотр веток, которые ещё не слиты:
git branch --no-merged
Последние две команды полезны для наведения порядка -- ветки, показанные --merged, обычно можно безопасно удалить.
Попробуйте!
Потренируйтесь создавать, переименовывать и удалять ветки:
- Создайте файл и сделайте коммит:
echo "hello" > hello.txt, затемgit add hello.txt, затемgit commit -m "Initial commit" - Создайте несколько веток:
git branch feature-a, затемgit branch feature-b, затемgit branch experiment - Просмотрите все ветки:
git branch - Переименуйте ветку:
git branch -m feature-a feature-login - Проверьте переименование:
git branch - Слейте одну ветку (fast-forward):
git merge feature-login - Проверьте, какие ветки слиты:
git branch --merged - Безопасно удалите слитую ветку:
git branch -d feature-login - Попробуйте безопасно удалить неслитую ветку:
git branch -d experiment-- Git откажет - Принудительно удалите её:
git branch -D experiment - Проверьте итоговое состояние:
git branch
Советы
- Удаляйте ветки сразу после слияния -- это проще, чем наводить порядок потом
- Регулярно используйте
git branch --merged, чтобы находить ветки, которые можно безопасно удалить - Если вы случайно удалили ветку,
git reflogпоможет найти коммит и пересоздать её