[Git] Git Submodules 사용해서 민감한 설정 정보 숨기기

2023. 10. 31. 16:00· Git
목차
  1. 💋 인트로
  2. 💋 Git Submodules 설정 방법
  3. ✔️ 서브모듈 추가
  4. ✔️ 깃 상태 확인
  5. ✔️ .gitmodules
  6. ✔️ 기존 설정파일이 서브모듈의 파일을 향하도록 변경
  7. 💋 Git Submodules 명령어
  8. ✔️ 서브모듈을 포함한 메인 레포지토리 clone하기
  9. ✔️ 메인 레포지토리에서 서브모듈 별도로 받아오기
  10. ✔️ Git Submodules 삭제
  11. 💋 참고자료
반응형
반응형

 

💋 인트로

안녕하세요. 우아한테크코스 5기 깃짱이라고 합니다. 

 

서브모듈이란, 레포지토리 안에 또다른 레포지토리를 디렉토리로 분리해 넣은 것이다.

왜 필요할까? 우리는 프로젝트에서 사용하게 될 각종 Secrets들을 절대로 깃허브의 public 레포지토리에 Push해서는 안된다. 지울 수 없고, 로봇이 지나가면서 다 내 정보를 털게 될 것이다.

서브모듈을 사용해서 통째로 중요한 설정 정보를 관리하자!

 

이 포스팅에서 내가 사용하는 메인 레포지토리는 backend-server이고, 메인 레포지토리의 설정 정보만을 담은 레포지토리는 backend-server-submodule 이다.

 

이 포스팅은 간단히 따라할 수 있도록 방법에 대해서만 포스팅할 것이다.

 

💋 Git Submodules 설정 방법

✔️ 서브모듈 추가

backend-server 에 들어가서, 아래와 같이 서브모듈을 추가하자.

 

# git submodule add [서브모듈 레포지토리] [메인 레포지토리 내 추가할 위치(생략 시 메인 레포지토리 루트에 생성됨)]
git submodule add https://github.com/sallang-e/backend-server-submodule.git src/main/resources/security

 

나는 별도로 src/main/resources/security 위치에 서브모듈을 추가하기 위해서 위와 같이 적어 주었다.

 

이렇게 하면, 내가 지정한 위치에 서브모듈이 생긴다.

 

 

✔️ 깃 상태 확인

두 개의 파일이 새롭게 생성된 것을 확인할 수 있다.

git status

 

(무튼 이렇게 두 가지 파일이 새롭게 생성되면 됨)

 

✔️ .gitmodules

이 파일을 통해서 우리는 서브모듈을 가져올 수 있게 된다.

 

 

✔️ 기존 설정파일이 서브모듈의 파일을 향하도록 변경

기존에 사용하던 application.yml 대신, 이제는 서브모듈의 application.yml을 사용하도록 변경해야 한다.

 

기존의 application.yml

spring:
  config:
	import:
	  - security/application.yml

 

물론, import 아래의 위치는 내가 설정한 서브모듈의 위치로 정확하게 설정해야 한다!

 

💋 Git Submodules 명령어

✔️ 서브모듈을 포함한 메인 레포지토리 clone하기

이제 그냥 기존 메인 레포지토리만 clone하게 되면, 서브모듈을 함께 가져오지 않아서 설정 파일이 비어있게 된다. (대부분의 경우에 에러가 난다.)

 

아래 명령어를 통해서 서브모듈을 포함해서 함께 프로젝트를 clone할 수 있다.

 

git clone --recurse-submodules [clone할 메인 레포지토리 이름].git

 

✔️ 메인 레포지토리에서 서브모듈 별도로 받아오기

위에서 말한 것처럼 함께 clone하지 않은 경우, 서브모듈만 별도로 받아올 수 있다. 아래 두가지의 명령어를 더 실행시켜주어야 한다.

 

git submodule foreach git pull origin main

 

아래와 같은 명령어도 있는데, 나는 아래 명령어가 잘 작동하지  않는다. (왜인지는 찾아보고 다시 올릴게요)

더보기
# 서브모듈 정보를 기반으로 로컬 환경설정 파일을 생성
git submodule init

# 서브모듈의 리모트 저장소에서 데이터를 가져옴.
git submodule update

 

✔️ Git Submodules 삭제

설정하다 망한 것 같으면 그냥 삭제하고 다시 하는게 낫다.

git submodule deinit -f [삭제할 서브 모듈의 위치]

 

 

 

💋 참고자료

  • https://hudi.blog/git-submodule/
  • https://data-engineer-tech.tistory.com/20
  • https://velog.io/@roycewon/Submodule을-통한-Secret-key-관리

 

 

 

도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!

 

반응형

'Git' 카테고리의 다른 글

[Git] 기존의 레포지토리를 commit까지 새로운 레포지토리로 복제하기: git —mirror  (0) 2023.11.01
[Git] upstream: 개념, 사용 방법, 명령어, 주의사항  (0) 2023.09.28
[GitHub] 깃허브에서 여러 사용자와 공동 커밋하는 방법: Co-Author 설정  (0) 2023.07.13
[Git/GitHub] 깃허브 Organization를 통해 체계적인 협업 문화를 만들어보자!  (0) 2023.05.26
  1. 💋 인트로
  2. 💋 Git Submodules 설정 방법
  3. ✔️ 서브모듈 추가
  4. ✔️ 깃 상태 확인
  5. ✔️ .gitmodules
  6. ✔️ 기존 설정파일이 서브모듈의 파일을 향하도록 변경
  7. 💋 Git Submodules 명령어
  8. ✔️ 서브모듈을 포함한 메인 레포지토리 clone하기
  9. ✔️ 메인 레포지토리에서 서브모듈 별도로 받아오기
  10. ✔️ Git Submodules 삭제
  11. 💋 참고자료
'Git' 카테고리의 다른 글
  • [Git] 기존의 레포지토리를 commit까지 새로운 레포지토리로 복제하기: git —mirror
  • [Git] upstream: 개념, 사용 방법, 명령어, 주의사항
  • [GitHub] 깃허브에서 여러 사용자와 공동 커밋하는 방법: Co-Author 설정
  • [Git/GitHub] 깃허브 Organization를 통해 체계적인 협업 문화를 만들어보자!
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기
    • About. 깃짱
    • Weekly Momentum
      • 2024
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
    • 우아한테크코스5기
    • 회고+후기
    • Computer Science
      • Operating System
      • Computer Architecture
      • Network
      • Data Structure
      • Database
      • Algorithm
      • Automata
      • Data Privacy
      • Graphics
      • ETC
    • WEB
      • HTTP
      • Application
    • C, C++
    • JAVA
    • Spring
      • JPA
      • MVC
    • AI
    • MySQL
    • PostgreSQL
    • DevOps
      • AWS
      • 대규모 시스템 설계
    • frontend
      • HTML+CSS
    • NextJS
    • TEST
    • Industrial Engineering
    • Soft Skill
    • TIL
      • 2023
      • 2024
    • Linux
    • Git
    • IntelliJ
    • ETC
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • 함수형프로그래밍
  • 스트림
  • TDD
  • 우테코
  • OOP
  • Java
  • 우아한테크코스
  • 우아한테크코스5기
  • 상속과조합
  • 상속
  • Stream
  • 람다와스트림
  • 조합
  • lamda
  • 레벨로그
  • 람다
  • 우테코5기
  • 예외
  • 컴포지션
  • Composition
hELLO · Designed By 정상우.v4.2.0
깃짱
[Git] Git Submodules 사용해서 민감한 설정 정보 숨기기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.