임베디드 관련 카테고리/Github

Git을 활용한 버전 관리: v1.00과 v1.01 모두 유지하기

CBJH 2024. 10. 28.
728x90
반응형

소프트웨어 개발에서는 여러 버전을 관리하면서 새로운 기능을 추가하는 것이 중요합니다. 이 포스팅에서는 Git을 활용해 이전 버전을 보존하고, 새로운 기능을 추가한 v1.01을 개발하면서 마스터(master) 브랜치에 최신 버전을 유지하는 방법을 설명합니다.


1. 현재 버전(v1.00) 보존: 태그 사용하기

먼저, 현재 master 브랜치에 있는 코드를 v1.00으로 태그를 남겨 보존합니다.

1.1 태그 생성 및 푸시

git checkout master  # master 브랜치로 이동
git tag -a v1.00 -m "Version 1.00: Basic RockPaperScissors Game"
git push origin v1.00  # 원격 저장소에 태그 푸시
  • 태그(tag): 특정 시점의 커밋을 보존합니다.
  • v1.00 태그는 초기 버전의 RockPaperScissors 게임을 의미합니다.

2. 새로운 기능 추가를 위한 브랜치 생성: 기능추가 브랜치

새로운 기능을 추가하기 위해 새로운 브랜치를 생성합니다.

2.1 브랜치 생성 및 이동

git checkout -b feature/기능추가
  • feature/기능추가 브랜치를 생성하고 해당 브랜치로 이동합니다.
  • 여기서 새로운 기능을 개발합니다. 예를 들어, RockPaperScissors 게임의 결과를 시간 기반으로 랜덤화합니다.

3. 기능 개발 완료 후 커밋 및 푸시

새로운 기능을 추가한 후 커밋하고 원격 저장소에 푸시합니다.

3.1 커밋 및 푸시

git add .
git commit -m "v1.01: Added time-based randomness for game outcome"
git push origin feature/기능추가
  • 이렇게 하면 기능추가 브랜치가 원격 저장소에 푸시됩니다.

4. Pull Request 생성 및 master 브랜치에 병합

  1. **GitHub에서 Pull Request(PR)**를 생성합니다.
  2. 코드 리뷰 후 문제가 없으면 master 브랜치에 병합합니다.

4.1 병합 명령 (로컬에서)

git checkout master  # master 브랜치로 이동
git merge feature/기능추가  # 기능추가 브랜치를 master에 병합

5. v1.01 버전 태그 남기기

병합이 완료되면 v1.01 버전을 태그로 남겨 보존합니다.

5.1 v1.01 태그 생성 및 푸시

git tag -a v1.01 -m "Version 1.01: Time-based randomness for game outcome"
git push origin v1.01

6. 불필요한 브랜치 정리 (선택 사항)

병합이 완료된 기능추가 브랜치는 삭제해 정리합니다.

6.1 브랜치 삭제

git branch -d feature/기능추가  # 로컬 브랜치 삭제
git push origin --delete feature/기능추가  # 원격 브랜치 삭제

7. 최종 구조

  • master 브랜치: 항상 최신 버전(v1.01) 유지
  • 태그 v1.00: 초기 버전 보존
  • 태그 v1.01: 시간 기반 랜덤화 기능이 추가된 버전


8. Git 버전 관리 흐름 요약

  1. 버전을 태그로 관리해 필요할 때 특정 버전으로 복원할 수 있습니다.
  2. 새로운 기능은 브랜치에서 개발한 후, master 브랜치에 병합합니다.
  3. 최신 버전은 항상 master 브랜치에 유지하며, 완료된 브랜치는 정리합니다.

정리

이제 RockPaperScissors 게임에서 v1.00과 v1.01 모두를 보존하면서도 최신 버전을 master 브랜치에 유지할 수 있습니다. Git의 브랜치와 태그를 활용하면 개발 과정에서 다양한 버전을 안전하게 관리할 수 있습니다.

궁금한 점이 있거나 추가적인 도움이 필요하면 언제든지 댓글로 남겨주세요! 😊

댓글