У нас есть команда из 50+ разработчиков, и люди не удаляют свои функциональные ветки после слияния их в основной ветке.
У нас есть четыре основные ветви develop
, staging
, demo
и master
. Мы следуем за созданием отдельной ветки для каждого тикета JIRA, и эту ветку следует удалить после ее слияния с исходной веткой.
Итак, я хочу получить список всех объединенных ветвей вместе с создателем, чтобы подготовить статистику, но не смог найти правильный способ сделать это. Найдите несколько ответов на StackOverflow, но не смогли найти подходящего.
@RajatMishra Нет, создатель ветки не отображается.
GitHub не позволяет узнать, кто создал ветку. Вы можете видеть, кто создал коммиты в ветке, но если бы я отправлял коммиты, созданные кем-то другим, вы не могли бы сказать, что я был отправителем.
Сам Git не хранит никакой информации о том, кто создал имя ветки (потому что это бессмысленно, имена веток не важны). GitHub мог бы хранить эту информацию где-то за пределами Git, но не делает этого (потому что это бессмысленно).
Используйте git for-each-ref
с --merged=HEAD
для фильтрации по объединенной ветке, затем используйте формат, чтобы получить коммиттера, получив последнего человека, который зафиксировал эту ветку.
git for-each-ref --merged=HEAD --format='%(committerdate) %09 %(authorname) %09 %(refname)' --sort=committerdate
Вы можете добавить grep
к refs/remotes/origin/
, чтобы получить только удаленные ветки.
git for-each-ref --merged=HEAD --format='%(committerdate) %09 %(authorname) %09 %(refname)' --sort=committerdate | grep 'refs/remotes/origin/'
От Узнайте создателя ветки Git и Как узнать, была ли ветка уже объединена с мастером?
--no-merged=HEAD
Это даст не объединенную ветку, а мне нужны объединенные ветки. Также мне нужно проверить, объединена ли ветвь в точке, которую она создала, вместо того, чтобы проверять, объединена ли ветвь с мастером.
Я обновил для merged
Я не понимаю, что вы называете point it created.
Вы можете запустить это по команде в другой ветке основного потока, но если вы объедините develop
в master
, вы получите дубликат. так как ветка будет в истории нескольких основных веток
Я выполнил приведенную выше команду, и она напечатала множество веток, но когда я искал некоторые из этих веток в репозитории GitHub, их не существовало.
Вы должны очистить свой локальный клон, если у вас есть локальный объект, которого нет на сервере.
Вы можете проверить удаленную ветку с помощью git branch -r
Отвечает ли это на ваш вопрос? Как я могу узнать, что ветка уже объединена с мастером?