본문 바로가기
서버인프라/Git

git을 활용한 directory 지정 클론

by techwold ted 2023. 7. 24.

보통 잘 많이 사용하지 않는 것 같아 이번 기회에 내용을 담아보려 합니다.

사실 이 방법을 알고 있다면 시스템 관리자 입장에서는 프로젝트 단위 컨피그 관리가 편해집니다.

 

아래와 같이 컨피그를 관리 한다고 가정하에. 

테스트 구조

그리고 아래와 같은 디렉토리 구조를 가져 갑니다.

~/Documents/config (main) » tree A-Project                                                                                                                                                                                                               ted@teds-MacBook-Pro
A-Project
└── nginx
    └── conf.d

3 directories, 0 files
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
~/Documents/config (main) » tree B-Project                                                                                                                                                                                                               ted@teds-MacBook-Pro
B-Project
└── nginx
    └── conf.d

3 directories, 0 files
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
~/Documents/config (main) » tree C-Project                                                                                                                                                                                                               ted@teds-MacBook-Pro
C-Project
└── nginx
    └── conf.d

 

그리고 우리는 A-Project 서버에 적용할 컨피그를 관리 합니다.

https://github.com/empathize/config.git

위와 같이 clone 할 경우 config 의 파일들이 모두 clone되게 됩니다.

 

테스트로 A-Project/nginx/conf.d/test.conf  를 만들었습니다.

이 파일을 push 하고 (혹시 기본적이 명렁어를 모르시는 분이라면 git 기초사항을 익히시고 오시길 바랍니다)

 

해당 파일의 디렉토리또는 파일을 clone 해 보도록 하겠습니다.

 

테스트를 위해 아래와 같이 nginx디렉토리를 생성합니다.

mkdir nginx
cd nginx

다음과 같은 피알이 있고 우리는 conf.d 안에 있는 파일 을 git으로 내려 받을 겁니다.

git pull origin main

~/Documents/nginx/conf.d (master) » tree A-Project          ted@teds-MacBook-Pro
A-Project
└── nginx
    └── conf.d
        └── test.conf

3 directories, 1 file

 

위와 같이 해당 프로젝트만 가져왔습니다.

지금부터 어떻게 해야 하는지 같이 만들어 가겠습니다. 어려운것은 아니니 같이 한번 따라해보시죠

 

순서

1. 디렉토리생성

2. git init

3. git sparse-checkout init

4. git sparse-checkout set "A-Project/nginx/conf.d/*"

5. git remote add origin https://github.com/empathize/config.git

 

git init
git sparse-checkout init
git sparse-checkout set "A-Project/nginx/conf.d/*"
git remote add origin https://github.com/empathize/config.git

# git sparse-checkout list 확인
git sparse-checkout list
git remote -v

 

이제 git pull 을 해보고 확인해보세요
아래와 보면 설정이 잘 됨을 알 수 있습니다.

아래와 같이 잘 받아오는 걸 알 수 있습니다.
현재 내용을 수정해보고 push 역시 잘 되는지 확인해 보겠습니다.

test.conf 파일을 아래와 같이 아무렇게나. ㅎㅎ 수정했습니다.

우선 main branch로  checkout해주겠습니다. 

 

아래와 같이 수정해주고 git add와

commit을 해줍니다. 

 

이제 push를 진행하겠습니다.

 

이제 github에서 잘 반영되었는지 확인해 보겠습니다.

 

위에서 수정된 내용이 잘 들어가 있네요~

다들 잘 한번 따라해 보시면 좋을거 같습니다.

 

실제 프로젝트에서 사용시 아래와 같은 내용이 되지 않을까 싶습니다. 이렇게 관리 하는 것을 ^^

'서버인프라 > Git' 카테고리의 다른 글

Gitlab Upgrade  (0) 2023.09.21
git service 비교  (0) 2023.08.04
자주 사용하는 git 명령어  (1) 2023.08.03

댓글