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. 초기설정
소스트리 설치 후 최초로 해야 할 설정
- GitHub/Gitlab 계정 연동
- SSH 키 설정 (보안을 위해 권장)
- .gitignore 파일 설정 (빌드 파일, 임시 파일 등 제외)
2. 저장소 클론
- 저장소 클론
- New > Clone from URL 클릭
- 원격 저장소 URL 입력 ( 그림2 )
- 로컬 저장소 위치 지정 ( 실제 프로젝트를 진행할 PC 경로 )
- 클론 버튼 클릭
- develop 브랜치 생성
- main 브랜치에서 분기
- 이후 모든 개발은 develop 브랜치 기준
3. 기본작업 시작
- develop 브랜치에서 최신 코드 받기 (Pull) (이미지 01)
- 새 기능 브랜치 생성 (이미지 02)
[ 예시 ]
feature/servo-control (서보 제어 기능)
feature/safety-interlock (안전 인터락 기능)
4. 변경사항 커밋하기
- '파일 상태' 탭 선택 (이미지04)
- 각 파일 클릭으로 변경내용 확인 가능 (이미지05)
- 커밋 내용 작성 이후 커밋 진행 (이미지06)
- 변경 내용 체크리스트
- 빌드 후 생성된 임시파일 포함 여부
- 설정 파일 변경 확인
- 디버그 코드 잔여 여부
5. Merge 하기
위와같이
- feature/servo-control: 서보 제어 기능
- feature/safety-interlock: 안전 인터락 기능
이렇게 2가지의 기능이 같이 개발 되는 경우 권장되는 작업 순서는 아래와 같습니다.
- 각 기능 완료 시점에 따라 순차적으로 develop에 병합
- 먼저 완료된 feature/servo-control를 develop에 병합
- 그 다음 feature/safety-interlock 병합
- 병합하는 방법은 병합해야할 상위 브랜치를 클릭한 뒤 하위 브랜치를 병합하는 방식으로 진행
- 병합 순서 결정시 고려사항
- 기능 간 의존성 (안전 기능이 서보 제어에 영향을 주는 경우)
- 테스트 완료 상태
- 고객 우선순위
- 충돌 방지를 위한 팁
- 병합 전에 develop 브랜치의 최신 내용을 각 feature 브랜치로 먼저 가져오기
- 충돌이 있다면 feature 브랜치에서 먼저 해결
이후 사용하지 않는 feature들은 모두 삭제
6. Push하기
- 상단 'Push' 버튼 클릭 (이미지 08)
- Push 설정 확인 (이미지 09)
- 원격 브랜치명 확인
- 체크박스 선택 확인
- '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