Состояние Git в нескольких репозиториях на Mac - PullRequest
18 голосов
/ 04 мая 2010

Я какое-то время искал решение этой проблемы и не нашел именно то, что мне нужно.

У меня есть несколько репозиториев Git в папке на моем Mac (OSX 10.6), и мне нужен скрипт или инструмент, который будет циклически проходить по всем репозиториям и сообщать мне, если для любого из них требуется commit ing.

Это моя структура

Sites
  /project1
  /project2
  /project3

Я хочу, чтобы инструмент выполнил git status в Сайтах / проекте1, Сайтах / проекте2, Сайтах / проекте3 и дал мне знать, есть ли какие-либо из них с изменениями или новыми файлами, которые необходимо поставить или зафиксировать.

Ближайший найденный мной скрипт, который может быть взломан здесь, , но даже этот скрипт не запускается, и я получаю ошибку:

"синтаксическая ошибка рядом с неожиданным токеном` do "

который мог быть написан для * nix.

Ответы [ 11 ]

0 голосов
/ 17 апреля 2014

Это простой способ сделать такие вещи в одну строку. Мне не хватает одного последнего шага, который я добавлю, как только узнаю (если кто-то еще не знает).

Для git status вы можете сделать:

find ./Sites -name .git | awk '{ print "git --git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " status" }'

затем скопируйте вывод и выполните его.

Для получения полной разницы вы можете запустить:

find ./Sites -name .git | awk '{ print "git --git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " --no-pager diff" }'

Копирование-вставка вещей, которые вы должны сделать, раздражает меня. Он также должен использовать xargs, но Git жалуется:

find ./Sites -name .git | awk '{ print "--git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " --no-pager diff" }' | xargs git

Если кто-то знает, как исправить ошибку git в этой последней команде, отредактируйте этот ответ.

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