Я искал решение этого некоторое время и не нашел вполне, в чем я нуждаюсь.
Я имею несколько Репозиториев Мерзавца в папке на моем Mac (OSX 10.6) и хотел бы сценарий или инструмент, который циклично выполнится через все репозитории и сообщит мне, нужно ли какому-либо из них commit
луг.
Это - моя структура
Sites
/project1
/project2
/project3
Я хочу, чтобы инструмент сделал a git status
в Sites/project1, Sites/project2, Sites/project3 и сообщают мне, есть ли у какого-либо из них изменения или новые файлы, которые должны подготавливаться или фиксироваться.
Самый близкий сценарий я нашел это, мог бы быть hackable, здесь, но даже что сценарий не работал бы, и я получаю ошибку:
"синтаксическая ошибка около неожиданного маркера 'делает"
который, возможно, был записан для *, отклоняют.
Есть программа на Python, uncommitted , которая звучит так, как будто она будет делать именно то, что вы хотите. Для него пока нет поддержки git (только hg и Subversion), но вы можете помочь автору реализовать поддержку git в его приложении или воспользоваться его идеями о том, как реализовать ваш материал (он документирует свой метод поиска на странице проекта. Я связался с).
Если вам просто нужен статус файлов в локальных репозиториях, что-то вроде этого: http: //gist.github .com / 389478 должен помочь. Вам нужно будет изменить шаблон в цикле for
, чтобы выбрать любые каталоги, которые вы хотите.
Кажется, что на вопрос ответили нормально, но я хотел добавить свои два цента после того, как поработал над тем же.
Я подошел ближе к ответу jcordasc, используя простой сценарий bash. Я просто сделал одно немного другое. Просматривая справочную документацию для git, вы можете установить каталог git и рабочий каталог. Это устраняет необходимость «cd» для каталогов. Не то чтобы это действительно так уж важно ...
#!/bin/bash
for gitdir in `find ./ -name .git`;
do
workdir=${gitdir%/*};
echo;
echo $workdir;
git --git-dir=$gitdir --work-tree=$workdir status;
done
Очевидно, он более продвинут / чище в том, как он показывает статус »...