Подтвердить что ты не робот

Есть ли способ перечислить репозитории git в терминале?

У меня есть несколько репозиториев git в моей системе, и я хочу перечислить их все в терминале.

Я ищу что-то вроде этого:

/путь/в/my/git/repo/1/REPONAME1
/path/to/my/ git/repo/2/REPONAME2
/path/to/my/ git/repo/3/REPONAME3

Если вы можете придумать, как показать название ветки и статус репо, например. [master] c: 0 u: 1 d: 0, это было бы здорово.

4b9b3361

Ответ 1

Чтобы перечислить все репозитории git, которые у вас есть в вашей системе, вы можете запустить следующую команду в терминале оболочки bash (в командной строке) и найти их.

find / -name .git -type d -exec dirname {} \;

Ответ 2

Я нашел это более точным, чем команда find, и намного быстрее. Я уверен, что его можно улучшить, но это хорошее начало. Очевидно, что для запуска этой команды ваша база данных должна быть актуальной. В Linux-системах вы можете сделать это, запустив 'updatedb'.

locate -br '\.git$' | rev | cut -c 6- | rev

Ответ 3

lsgit - это script, который делает это. Это по существу обертка вокруг locate -br '^HEAD$'.

Если на локальном компьютере имеется несколько клонов одного и того же репо, это будет указывать на то, что эти репозиции связаны.

Ответ 4

Обертка вокруг:
locate -br '^HEAD$' как сделано Ди Ньюкумом https://github.com/DeeNewcum/dotfiles/blob/master/bin/lsgit или find . -name 'HEAD', как изменено в https://gist.github.com/nrbray/a0ae8ec59d1fd1ae03e2947368096d2e

дает альтернативу поиску мерзавцев только по папке или имени файла.

[Недостаточно репутации, чтобы комментировать ответ ди, но я использовал его решение, и оно сработало для меня]