반응형
as-is Gitlab → to-be Gitlab 마이그레이션
스크립트 작성
일일이 신규 gitlab으로 옮기기 귀찮아서 쉘스크립트 작성
gitlab-repo-migration.sh
#!/bin/bash
echo "All params = $@"
for i in $@
do
echo "$i ################################################"
git clone https://gitlab-original-domain.com/gitlab-group-name/$i.git
cd ./$i
git branch -r | grep -v '\->' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
git remote remove origin
git remote add origin https://gitlab-tobe-domain.com/gitlab-group-name/$i.git
git push --all
cd ..
done
쉘스크립트 내용을 간단히 설명하자면
실행시 argument 인자를 받아서 loop를 도는 형태, 여러개 인자를 받는다면 여러번 실행한다.
argument 인자는 기존 repo의 명칭이 된다.(프로젝트 root 디렉토리명 : *.git)
모든 브랜치를 다 fetch, full을 한 다음
해당 repo의 as-is origin을 제거한다.
그리고 새로운 gitlab origin 주소를 셋팅하고 그 origin으로 모든 브랜치를 push한다.
실행
chmod 755 ./git-repo-migration.sh
./git-repo-migration.sh \
first-repo-name \
second-repo-name \
third-repo-name
권한 셋팅하고 git 프로젝트를 인자로 입력한다.
인자로 입력한 모든 git repo를 pull하여 신규 gitlab에다가 push한다.
인자로 입력한 모든 git repo를 pull하여 신규 gitlab에다가 push한다.
반응형
'devops' 카테고리의 다른 글
Docker-compose 설치하기 (0) | 2023.07.07 |
---|---|
Docker 설치하기 (0) | 2023.07.07 |
네이버클라우드 서버에 스토리지 추가 및 초기화 작업 (0) | 2023.07.06 |
GitLab-Runner Helm Installation (0) | 2023.07.06 |
docker-compose Gitlab 백업 구축하기 (0) | 2023.07.06 |