codeheart 위치로그  |  태그  |  미디어로그  |  방명록
icon [bash][ruby] - 콘솔. 서브 디렉토리 모든 브랜치에 대해서 git pull 하는 스크립트(bash, ruby)
개발/Script | 2013. 9. 4. 02:28

1. 모든 브랜치에 대해서 pull 하는 방법

git up ( git pull 대신 사용한다 )


단, git up 은 git-up 을 설치해야만 사용할 수 있다.

git-up 을 설치하려면 


[redhat linux]

sudo yum install ruby            (윈도우의 경우 rubyinstaller 를 통해 설치)

sudo yum install ruby-devel    

gem install git-up


[debian linux]

sudo apt-get install ruby

sudo apt-get install ruby-dev

sudo gem install git-up


2. 모든 서브 디렉토리(repository)의 모든 브랜치에 대해서 pull 하는 스크립트 ( bash ) - 단, 로컬 브랜치가 존재하는 경우만

<<git-all-up.sh>>

#!/bin/bash

for f in $(find $(pwd) -maxdepth 1 -type d) ; do

        if [ -d ${f}/.git ] ; then

                echo '>>> git up ... ' $f

                git --git-dir=${f}/.git --work-tree=${f} up

        fi

done

>> $(...) 하면 ... 의 표준 출력이 값이 된다.

>> ; 하면 줄넘김을 하지 않아도 된다

>> [ ... ] 에는 파일 관련 조건식이 온다. [ -d $f ] 의 경우는 $f 파일(명)이 directory 인지 판단.


3. 모든 서브 디렉토리(repository)의 모든 브랜치에 대해서 pull 하는 스크립트 ( ruby ) - 단, 로컬 브랜치가 존재하는 경우만

<<git-all-up.rb>

#!/usr/bin/ruby

Dir.glob("**").each do |d|

        if File.exists?("#{d}/.git")

                print ">>> git up ... #{d}\n"

                ad = File.expand_path(d)

                system "git --git-dir=#{ad}/.git --work-tree=#{ad} up"

        end

end


이 외에 git 에는 submodule 이라는 개념이 있다.

이에 대해서도 알아볼 필요가 있다.

이를 사용하지 않거나 사용할 수 없는 경우에 위와 같은 방법을 사용한다.

'개발 > Script' 카테고리의 다른 글

powershell 응용  (0) 2013.12.23
[powershell] 파워쉘 속성 튜토리얼  (1) 2013.09.14
[ruby] 변수/클래스의 메쏘드 목록 보기  (0) 2013.09.09

arrow 트랙백 | 댓글



관리자  |   글쓰기
BLOG main image
code heart story
분류 전체보기 (74)
생활 (0)
잡담 (8)
컴퓨터 (11)
개발 (52)
Total :
Today :
Yesterday :
rss
위치로그 : 태그 : 방명록 : 관리자
코드하트's Blog is powered by Daum / Designed by plyfly.net