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 이라는 개념이 있다.
이에 대해서도 알아볼 필요가 있다.
이를 사용하지 않거나 사용할 수 없는 경우에 위와 같은 방법을 사용한다.