Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git Status Across Multiple Repositories on a Mac

I have been searching for a solution to this for a while and have not found quite what I need.

I have several Git Repositories in a folder on my Mac (OSX 10.6) and would like a script or tool that will loop through all the repositories and let me know if any of them needs commiting.

This is my structure

Sites
  /project1
  /project2
  /project3

I want the tool to do a git status in Sites/project1, Sites/project2, Sites/project3 and let me know if any of them have changes or new files that need to be staged or committed.

The closest script I found that might be hackable is here, but even that script wouldn't run, and I get an error:

"syntax error near unexpected token `do"

which might have been written for *nix.

like image 838
eapen Avatar asked May 04 '10 12:05

eapen


People also ask

How do I check Git status on Mac?

To check the status, open the git bash, and run the status command on your desired directory. It will run as follows: $ git status.

How can I check my repo status?

01 Check the status of the repositoryUse the git status command, to check the current state of the repository.

Can I have multiple Git repositories?

With Git, using multiple repositories is the only way to work efficiently. This enables each team to work independently, and do their work faster. You can also make sure that developers only have access to the repositories they need access to (thus making Git more secure.)


2 Answers

It seems that the question has been answered fine, but I wanted to throw in my two cents after working on the same thing.

I went closer to jcordasc's answer by using a simple bash script. I just did one thing a little different. Looking at the help docs for git you can set the git directory and working directory. This eliminates the need to 'cd' to the directories. Not that it really makes that much difference...

#!/bin/bash

for gitdir in `find ./ -name .git`; 
    do 
        workdir=${gitdir%/*}; 
        echo; 
        echo $workdir; 
        git --git-dir=$gitdir --work-tree=$workdir status; 
    done

Obviously his is more advanced/cleaner for how it shows the status'...

like image 193
Woody2143 Avatar answered Oct 05 '22 07:10

Woody2143


There's a Python based program, uncommitted that sounds like it would do exactly what you want. There's no git support for it yet (just hg and Subversion), but you may be able to help the author implement git support in his app, or take his ideas as how to implement your stuff (he documents his finding method on the project page I linked to).

like image 28
RyanWilcox Avatar answered Oct 05 '22 07:10

RyanWilcox