We are Architect

젠킨스로 배우는 CICD 파이프라인: Git(11) 본문

CI & CD/Jenkins

젠킨스로 배우는 CICD 파이프라인: Git(11)

the best infra 2024. 12. 27. 01:16

 

* git 이란?

  • 깃은 버전 관리 시스템이다. 해당 도구로 다양한 코드 버전을 유지하면서 변경 사항을 추적할 수 있다.
  • 새로운 코드 기능을 추가하고 낡은 기능을 제거하고, 기존 기능을 업데이트하는 작업들을 할 수 있게 된다.
  • 다양한 개발자들이 같이 협업하는데 도움이 되는데 왜냐하면 중앙 리포지터리에 작업한 내용들을 보낼 수 있기 때문이다.
    • 소스 관리 시스템의 세 가지 유형
      • 중앙집중식 버전 관리 시스템 : 특정 서버에서 운영되는 레포지터리 시스템 방식.
      • 로컬 버전 관리 시스템 : 로컬 리포지터리 사용하는 방식.
      • 분산 버전 관리 시스템 : 로컬 + 중앙집중식 방식이 합쳐서 사용되는 시스템 방식. 
        • 코드 변경과 테스트는 로컬에서 진행된다.
        • 코드 병합은 중앙 리포지터리에서 진행된다.  
        • 설치 및 자세한 내용은 Git Hub 포스팅 글에 있다. 

 

 

* 깃 프로세스 이해

  • 로컬 리포지터리 생성
    • 프로젝트 파일을 만들어 주고 안에 git init 명령어를 사용하여 로컬 리포지터리 생성.

 

  • 깃랩에 중앙 리포지터리 생성
    • 프로젝트 이름, 레포지터리 사설여부, 리드미 레포지터리 초기화 등 설정을 바꿔준다.
    • 그리고 프로젝트를 생성한다.

 

  • 로컬 리포지터리로 커밋
    • 브랜치를 생성하고 코드를 로컬 리포지터리로 커밋해 본다.
# 브랜치를 FirstBranch으로 전환하고 -b 옵션은 FirstBranch 브랜치를 만들라는 옵션이다.
git checkout -b FirstBranch

 

  • . gitignore 파일을 만들고 안에 설정값을 넣는다.
    • gitignore : 불필요한 파일이나 민감한 파일이 Git 저장소에 포함되지 않도록 설정.
      • .settings : Eclipse와 같은 IDE(통합 개발 환경)가 프로젝트 설정 정보를 저장하는 디렉토리. 이 디렉토리는 개발자의 로컬 환경에 따라 내용이 달라질 수 있으며, 프로젝트 협업 시 불필요한 충돌을 방지하기 위해 일반적으로 버전 관리에서 제외
      • Target : Maven 또는 Gradle과 같은 빌드 도구를 사용하면 프로젝트를 빌드할 때 생성되는 출력 파일(컴파일된 클래스, JAR 파일 등)이 저장되는 디렉토리. 포함하지 않음으로써 저장소 크기를 줄이고 불필요한 파일 업로드를 방지.
      • .classpath : Eclipse에서 사용하는 파일로, 프로젝트의 클래스 경로 정보를 담고 있음. 로컬 개발 환경에 따라 내용이 달라질 수 있으므로 협업 중 불필요한 충돌을 방지하기 위해 제외.
      • .project : Eclipse 프로젝트의 메타데이터를 저장하는 파일. 이 파일 역시 개발자의 로컬 환경에 따라 달라질 수 있어 일반적으로 버전 관리에서 제외.

 

  • 이후에 깃허브 명령어를 사용하여 푸쉬된 .gitnore파일이 있는지 확인한다. 
    • 아래와 같이 명령어를 넣어 주면 된다.
# git 초기화
git init

# FirstBranch 브랜치 만들기
git checkout -b FirstBranch

# 현재 디렉터리에 있는 모든 파일 스테이징으로 옮기기
git add .

# 커밋에 필요한 사용자 이름 설정
git config --global user.name ljh_world

# 커밋에 필요한 사용자 이메일 설정
git config --global user.email ljh_world.ljh7401@gmail.com

# 커밋과 메모
git commit --m "First commit in Git Lab"

# 리포지터리로 푸쉬
git push -u https://gitlab.com/ljh_world/jenkinsbookcalulatorapi.git FirstBranch

 

  • 깃랩의 리포지터리에 마스터 브랜치 생성
    • 개발자의 변경사항을 모두 검토한 후 병합되는 메인 브랜치로 사용될 곳.

  • 마스터 브랜치를 기본 브랜치로 설정
    • 좌측 드래그를 내리다 보면 settings안에 리포지터리 클릭 후 브랜치 디폴드 클릭. 

 

  • 브랜치 삭제하는 법
    • 왼쪽 카테고리에서 code > Branches > 우측 점 3개 > Delete