2016-07-19 2 views
0

부모 디렉토리에있을 수있는이 명령을 온라인에서 찾았습니다. 각 명령은 각 디렉토리를 거쳐 각각의 git 저장소를 업데이트합니다. 또한 상태를 얻으려면이 작업을 수행 할 수 있습니다. 출력을 정리하고 더 사용자가 읽을 수있는 방법이 있는지 궁금합니다.여러 Git 저장소 업데이트 - 향상된 출력

ls | xargs -I{} git -C {} pull 

이것은 잘 작동하지만 응답 만 제공합니다. 저장소의 이름과 응답 등을 표시하고 싶습니다.이 작업을 쉽게 수행 할 수있는 방법이 있습니까? 희망적인 방법으로 별칭을 사용하고 싶습니까?

+0

구글은 여러 자식 REPOS을 조작 할 수 있습니다 * 리포 *라는 도구를 가지고 있습니다. – ElpieKay

답변

2

원하는대로 할 수 있습니까?

for dir in * ; do if [ \! -L ${dir} -a -d ${dir}/.git ] ; then (cd ${dir} ; echo ":::: ${dir} ::::"; git pull) ; fi ; done 

그것은 현재 디렉토리에있는 모든 항목을 통과하고 항목이 자식 저장소의 상단 인 경우,이 디렉토리 이름을 인쇄하고 git pull을 수행합니다. git pull 이후에 각 저장소에서 수행하려는 다른 명령을 추가 할 수 있습니다.

편집 :

당신은 쉘 함수로 ~./bash_aliases에 추가하여 별칭을 수 있습니다 : 어떤 이유로 당신이 떠들썩한 파티 대신 자식 별칭으로 추가하고자한다면,

git-pull-all() { 
    #command here 
} 

또는 당신이 그것을 만들 때 별명, 당신은 !로 명령 이름을 붙일 수 있습니다

git config --global alias.pull-all '!COMMAND_HERE' 
+0

예, 작동하지만 별칭으로 어떤 식 으로든 별칭을 지정할 수 있기를 기대하면서 부모 수준에서 "git pull-all"과 같은 것을 실행할 수 있습니다. "find"는 git 명령이 아니므로 별칭은 내가 이해하는 것으로부터 작동하지 않습니다. –

+0

고맙습니다. 별칭 솔루션이 완벽하게 작동했습니다. –