lssue
- 다른 개발자들과 협업을 하기 위한 기능
Issue Label
- Label 종료
- 타입 - 버그, 기능개선, 신기능, 논의사항 등
- 상태 - New, In Progress, In Review, Done 등
- 카테고리 - Front-end, Back-end, UI 등
- Issue의 그룹화
- Issue의 플랫폼, 의존성 등 부가적인 내용 표기
- Issue의 상태 관리
- 본인의 Issue를 손쉽게 검색
Milestone
- 프로젝트의 이슈를 관리하기 위해 사용
- 이슈를 Milestone으로 묶을 수 있음
- Milestone을 사용하면 Issue들의 진척도를 확인하기 수월해짐
MR
- 다른 브랜치의 변경 사항을 반영하기 위한 요청
- 새로운 코드를 추가하여 브랜치에 반영(병합/Merge)하고자 함, 병합(Merge)을 요청(Request) 함
→ 브랜치 생성 - 커밋 - Gitlab으로 브랜치 푸시 - Merge Request
MR 하는 이유
- 코드 리뷰
- Master 브랜치의 안정성 유지
- 보안
Merge Request
- Source Branch : 병합의 소스가 되는 Branch(작업 Branch)
- Target Branch : 작업된 코드가 추가될 Branch(대상 Branch)
이슈와 MR을 연동하는 방법
- 이슈 페이지에서 MR / 브랜치를 생성함
Merge
- MR의 Merge 조건은 자유롭게 설정할 수 있으나 그래야만 하는 것은 아님
- 최소 Approver 수와 특정 사람의 승인을 Merge 조건으로 걸 수 있음 → 가장 알맞은 것
MR의 Merge
- Merge 이후에는 소스 브랜치의 변경사항이 타겟 브랜치로 병합됨
CI(CI-Continuos Integration)
- 새로운 코드에 대한 변경사항이 꾸준히 자동으로 빌드 및 테스트되어 여러 개발자가 동시에 작업할 때 인터럽트가 발생하는 것을 방지할 수 있음
- 안정성 유지 및 시간 절약
- 코드 작성에만 집중 가능
- 분업과 협업을 효율적으로 할 수 있음
- 변경사항을 효율적으로 관리할 수는 없음
CI 하지 않고 빌드하기
- CI/CD가 없을 때
- CI/CD가 있을 때
npm install express
npm install --save-dev mocha should supertest
# npm test
npm test
# Heroku 배포
npm install -g heroku
heroku login
heroku create
git push heroku master
# 배포 확인 -> 웹사이트
still-meadow-28490.herokuapp.com
.gitlab-ci.yml
- CI 기능에 대한 구성/설정을 저장하여 관리
# CI로 자동화 시키기
image: node:latest
stages:
- test
cache:
paths:
- node_modules/
testing:
stage: test
script:
- npm instsall
- npm test
- 프로젝트에 CI 적용
Stage
- 앞 Stage가 끝나야 다음 Stage가 실행됨
- 단계별로 실행될 스크립트를 자유롭게 설정할 수 있음
- 특정 브랜치에서만 실행되도록 설정할 수 있음
- only : 특정 브랜치에서만 Stage가 작동되도록 하기 위해 주는 옵션
MR에 CI를 연동하는 방법
- 프로젝트의 MR 설정에서 pipeline이 성공되어야 하게 설정함
Wiki
- 프로젝트에 대한 설명/안내 등을 문서로 마크다운으로 작성해서 관리할 수 있는 기능
Gitlab의 Member
- 서브 그룹과 프로젝트는 상위 그룹의 멤버를 상속함
- 그룹을 한 번에 초대할 때 Max Access Level을 넘지 못함
- 그룹 아래에 추가적으로 서브 그룹을 계속 생성할 수 있음
- 권한이 많은 순서대로 Guest - Reporter - Developer - Maintainer - Owner
Lint
- Lint에서 발생한 에러는 고치지 않아도 실행에 지장이 없음
- Lint에서 잡힌 자잘한 수정사항들을 고치지 않고 두면 기술부채가 되어 돌아옴
- Lint 과정을 거침으로서 코드의 질을 향상시킬 수 있음
- Lint는 무조건 빌드 전에 실행해야하는 것은 아님
Gitlab의 통계
- MR이 생성되고 Merge/Close 되기까지 걸린 평균 시간
- 커밋별 CI/CD에 걸린 시간
- CI/CD 실행 추세 및 pass된 수
Error Tracking
- 배포된 서비스에서 발생하는 Error에 대한 정보를 추적하기 위해 Gitlab에서 제공하는 기능
Environment
- 배포 환경을 관리하기 위해 Gitlab에서 제공하는 기능
Feature Flags
- 서비스의 기능을 깃랩에서 on/off 하고 싶을 때 사용하는 기능
'Tools > Git' 카테고리의 다른 글
[Git] Git 프로젝트 올리기 (0) | 2024.06.14 |
---|---|
[Git] Git 명령어 (1) | 2024.06.14 |
[Git] Git 설치 (0) | 2024.06.14 |
[Git] Git이란? (0) | 2024.06.14 |
[Git] 이미 Push한 커밋 수정하기 (0) | 2023.09.30 |