Получить все ветви в git и получить хэш-код для всех филиалов - PullRequest
2 голосов
/ 28 февраля 2020

Я пытаюсь получить команду в git, которая может помочь мне получить список всех ветвей или мой код, а также вывести список всех хеш-кодов перед тем же. Поскольку я хочу удалить все мои устаревшие ветви и сохранить их для последующего извлечения.

Чтобы просмотреть все ветви, достаточно выполнить следующую команду.

Git branch -r 

, чтобы получить хеш-код для ветви

git rev-parse <BranchName>

могу ли я получить одну команду, в которой перечислены все ветви и хеш-код перед ней.

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020
 git for-each-ref refs/remotes --format="%(objectname) %(refname:lstrip=2)"

git for-each-ref выводит информацию по всем локальным ссылкам.

refs/remotes - это шаблон для удаленных ветвей отслеживания. Будут напечатаны только ссылки, соответствующие шаблону.

--format форматирует вывод. Здесь %(objectname) относится к коммиту га sh. Следующее пространство буквально пространство. %(refname) относится к названию ссылки. Полное имя удаленной ветви отслеживания выглядит как refs/remotes/origin/foo. :lstrip=2 подавляет 2 левые части refs и remotes.

Подробнее см. git для каждого реф. .

1 голос
/ 28 февраля 2020

Я использовал петли cut и while, чтобы добраться до решения:

git branch -r -l | cut -d " " -f 3 | while read i; do echo "$i: $(git rev-parse $i)"; done
0 голосов
/ 28 февраля 2020

Я получил немного ответа, но все еще не конкретизировал:

Используемые команды: Чтобы перечислить все ветви:

git branch -r >>branchesList

Список всех хэш-кодов для веток:

for remote in git branch -r; do git rev-parse $remote ; done >> hascodeforbranches.txt*

Поместите его в xl, и у вас будет отображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...