프로그래밍/Git

[Git] repo 사용하기(feat. git 여러개 설정하기)

Beginner:) 2023. 10. 12.
320x100

먼저 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

댓글