Program/GitHub

Git과 GitHub _ (2) 개인 프로젝트 관리 ( 소스트리 )

사막여유 2024. 12. 1. 16:18
728x90

 

0. Git-Flow 브랜치 전략 이해하기

기본 브랜치 구조는 다음과 같이 잡습니다.

  • main : 제품 출시용 브랜치
  • develop : 개발 진행용 브랜치
  • feature/* : 새로운 기능 개발용 브랜치 ( 예:feature/servo-control )
  • customer/* : 고객사별 버전 관리용 브랜치 ( 예:custoemr/samsung-v1)

 

1. 초기설정

소스트리 설치 후 최초로 해야 할 설정

  1. GitHub/Gitlab 계정 연동
  2. SSH 키 설정 (보안을 위해 권장)
  3. .gitignore 파일 설정 (빌드 파일, 임시 파일 등 제외)

 

2. 저장소 클론

그림1, 그림2

  1. 저장소 클론
    1. New > Clone from URL 클릭
    2. 원격 저장소 URL 입력 ( 그림2 )
    3. 로컬 저장소 위치 지정 ( 실제 프로젝트를 진행할 PC 경로 )
    4. 클론 버튼 클릭
  2. develop 브랜치 생성
    1. main 브랜치에서 분기
    2. 이후 모든 개발은 develop 브랜치 기준

 

3. 기본작업 시작

이미지 01
이미지 02

  • develop 브랜치에서 최신 코드 받기 (Pull) (이미지 01)
  • 새 기능 브랜치 생성 (이미지 02)
[ 예시 ]
feature/servo-control (서보 제어 기능)
feature/safety-interlock (안전 인터락 기능)

 

4. 변경사항 커밋하기

이미지 04
이미지 04
이미지 05
이미지 06

  • '파일 상태' 탭 선택 (이미지04)
  • 각 파일 클릭으로 변경내용 확인 가능 (이미지05)
  • 커밋 내용 작성 이후 커밋 진행 (이미지06)
  • 변경 내용 체크리스트
    • 빌드 후 생성된 임시파일 포함 여부
    • 설정 파일 변경 확인
    • 디버그 코드 잔여 여부

 

5. Merge 하기

 

위와같이

  • feature/servo-control: 서보 제어 기능
  • feature/safety-interlock: 안전 인터락 기능

 

 

이렇게 2가지의 기능이 같이 개발 되는 경우 권장되는 작업 순서는 아래와 같습니다.

 

 

  • 각 기능 완료 시점에 따라 순차적으로 develop에 병합
    • 먼저 완료된 feature/servo-control를 develop에 병합
    • 그 다음 feature/safety-interlock 병합
    • 병합하는 방법은 병합해야할 상위 브랜치를 클릭한 뒤 하위 브랜치를 병합하는 방식으로 진행

상위 브랜치 develop 에서 하위 feature / servo-control 브랜치 먼저 결합
상위 브랜치 develop 에서 하위 feature / servo-control 브랜치 먼저 결합 결과
상위 브랜치 develop 에서 하위 feature / safety-interlock 브랜치 먼저 결합
결합 진행 중 발생한 에러
충돌한 코드에 대한 해결 진행
Merge 이후 자동 커밋로그 작성

  • 병합 순서 결정시 고려사항
    • 기능 간 의존성 (안전 기능이 서보 제어에 영향을 주는 경우)
    • 테스트 완료 상태
    • 고객 우선순위
  • 충돌 방지를 위한 팁
    • 병합 전에 develop 브랜치의 최신 내용을 각 feature 브랜치로 먼저 가져오기
    • 충돌이 있다면 feature 브랜치에서 먼저 해결

 

 

이후 사용하지 않는 feature들은 모두 삭제

feature 기능을 모두 추가한 뒤 develop에 모두 merge된 결과화면

 

 

6. Push하기

이미지 08
이미지 09

 

  1. 상단 'Push' 버튼 클릭 (이미지 08)
  2. Push 설정 확인 (이미지 09)
    • 원격 브랜치명 확인
    • 체크박스 선택 확인
  3. 'Push' 버튼으로 완료

원격 브랜치 업데이트 완료

7. 버전 태그 관리

 

 

  • 태그를 붙일 커밋을 히스토리에서 선택
  • 상단 메뉴바에서 "태그" 버튼 클릭
  • 다음 정보들을 입력:
    • 태그 이름 (예: v1.2.3)
    • 메시지 (예: 아래와 같이 작성)
Version 1.2.3 - 서보 제어 로직 개선, 안전 기능 강화 (2024-12-01)

 

v1.2.3 같은 버전 번호의 의미:

  • 첫 번째 숫자(1): 대규모 업데이트
  • 두 번째 숫자(2): 새로운 기능 추가
  • 세 번째 숫자(3): 버그 수정이나 작은 개선

 

  • samsung-v1.0: 삼성향 첫 번째 버전
  • lg-v2.1: LG향 두 번째 major 버전의 첫 번째 업데이트
728x90