На работе мы используем ветки темы, которые в какой-то момент интегрированы в несколько (3) главных ветвей. Теперь я хочу удалить все ветки тем из моего удаленного репозитория, которые были полностью интегрированы в главную ветку. Если это невозможно, поиск списка локальных ветвей, которые были интегрированы, тоже будет прекрасным.
Как удалить все удаленные ветки git, которые уже были интегрированы?
Ответ 1
Edit:
Лучший ответ от комментария skalee:
git branch -a --merged remotes/origin/master | grep -v master | grep "remotes/origin/" | cut -d "/" -f 3- | xargs -n 1 git push --delete origin
Старый ответ:
git push --delete remote topicbranch
или
git push remote :topicbranch
Давая список ветвей, было бы что-то с git branch --merged master
Ответ 2
Вы можете сделать это за один раз с помощью
git branch --merged master | grep -v master | xargs -n 1 git push --delete origin
Дамп, который в script называется "чистым", если вы обнаружите, что делаете это часто.
Ответ 3
Если вы хотите удалить удаленные ветки из исходного репозитория:
git branch -r --merged develop | egrep -iv '(master|develop)' | sed 's/origin\///g' | xargs -n 1 git push --delete origin
Ответ 4
Это команды, которые я использую, чтобы удалить все слияние в origin/master
. В принципе, я удаляю все ветки, объединенные в master
из GitHub.
git remote update -p &&
git branch -r --merged origin/master |
grep origin |
grep -v master |
cut -d"/" -f2- |
xargs git push origin --delete