먼저 repo란 Google에서 제공하는 git 유틸리티이며 여러개의 저장소를 한번에 clone 또는 checkout 할 수 있다.
원래는 Android Project에서 시작하였으나, Android 뿐만 아니라 여러개의 저장소를 관리해야할 때는 목적 상관없이 repo를 사용하기도 한다.
repo가 python으로 만들어진 git 유틸리티 이므로 git과 python이 설치되어 있어야 한다.
1. 설치
- Windows
브라우저에 https://storage.googleapis.com/git-repo-downloads/repo 를 접속하여 repo를 다운로드한다.
C:\Users\[User name]에 bin 폴더를 생성하고 다운로드한 repo를 옮긴다. (명령 프롬프트로 사용하려면 repo.exe로 파일명 변경)
ex) C:\Users\Park\bin
해당경로를 환경 변수 편집으로 경로 추가
Git bash를 이용하여 repo version 확인
repo --version
- Ubuntu
wget https://storage.googleapis.com/git-repo-downloads/repo repo
chmod 755 repo
sudo mv repo /usr/bin
repo --version
2. 설정
repo는 manifest라는 파일로 설정한다.
manifest라는 저장소를 만들고 default.xml파일을 생성한다.
default.xml을 작성한다.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="[원격 저장소 이름]" fetch="[Git URL]"/>
<default remote="[원격 저장소 이름]" revision="[manifest branch name]" sync-j="[병렬 작업 개수]" />
<!-- 프로젝트 정의 -->
<project path="[project path]" name="[project name]" remote="[원격저장소 이름]" revision="[project branch name]" />
</manifest>
ex)
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin" fetch="https://github.com/user"/>
<default remote="origin" revision="learn" sync-j="4" />
<!-- 프로젝트 정의 -->
<project path=".vscode" name="learn/vscodesetting" remote="origin" revision="stm32f411re/learn" />
<project path="STM32" name="learn/STM32" remote="origin" revision="stm32f411re/learn" />
<project path="Renode" name="learn/Renode" remote="origin" revision="stm32f411re/learn" />
<project path="Toolchain" name="learn/Toolchain" remote="origin" revision="gcc-arm-none-eabi-10.3" />
</manifest>
- sync-j
병렬작업개수라 설명되어있는데, project 개수인지, 작업 스레드를 말하는지 잘 모르겠지만 느낌이 작업스레드 개수다.
- project path
저장소를 저장할 위치이다.
ex)
- name
저장소 고유이름이다. (대소문자를 구분하지 않는다)
ex)
이외 명령어는 아래 링크를 확인
https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md
3. repo 내려받기
* Windows는 Git bash 관리자권한으로 실행
- repo 초기화
repo init -u [manifest url] -b [manifest branch name]
ex)
repo init -u http://gitlab.park-duck.world/learn/manifest.git -b learn
- repo 내받기
repo sync -c
- repo checkout
repo start [checkout branch name] [project path(여러개 가능)]
project마다 branch name이 다르다면 repo start 명령어를 여러번 주면 된다.
ex)
repo start stm32f411re/learn STM32 Renode .vscode
repo start gcc-arm-none-eabi-10.3 Toolchain
만약 모든 저장소가 하나의 branch name이라면 "repo start --all [checkout branch name]으로 설정할 수 있다.
+) manifest 저장소도 같이 받아지는데, 해당 폴더에서 .repo/manifest폴더에 존재한다.
'프로그래밍 > Git' 카테고리의 다른 글
[Git] Remote 명령어 모음 (0) | 2023.12.23 |
---|---|
[Git] 5. stash (0) | 2023.07.04 |
[Git] 4. branch(2) (0) | 2023.06.05 |
[Git] 3. branch(1) (0) | 2023.05.31 |
[Git] 계정 자동 로그인(feat. VSCode) (0) | 2023.05.29 |
댓글