GIT 브랜치 & 소스트리 협업 관련 내용을 이해하는데에 도움을 주신 블로그들
# Git과 SourceTree 설치
[SourceTree]소스트리(GIT GUI) 설치방법 - 1편
SourceTree Simplicity and power in a beautiful Git GUI 규모가 큰 웹퍼블리싱 프로젝트는 여러 명의 퍼블리셔가 협업하여 프로젝트를 진행합니다. 이러한 프로젝트를 할 경우 협업은 매우 중요한 요소입니다
www.biew.co.kr
# Git과 SourceTree를 이용한 협업 방법
https://leveloper.tistory.com/132
[Git] Git과 SourceTree를 이용한 협업 방법 (Git Flow)
이번에는 버전 관리 도구인 git을 사용해 팀원들과 협력하는 방법을 알아볼 것이다. 우선 git에 대해서 모른다면 Git과 GitHub은 무엇일까? 글을 먼저 보고 오자. 0. Git과 GitHub은 무엇일까? git & github |
leveloper.tistory.com
# SourceTree Merge + Rebase 방법
https://wbluke.tistory.com/26
Sourcetree에서 Rebase + Merge 로 깔끔한 브랜치 라인 유지하기
Sourcetree 안녕하세요! 이번 포스팅에서는 간단하게, git을 GUI 환경에서 사용할 수 있게 해주는 Sourcetree(소스트리)로 rebase와 merge하는 법을 알아보겠습니다. 개인 프로젝트를 할 때나 교육을 받고
wbluke.tistory.com
Git과 SourceTree를 활용한 협업 방법 (Git Flow)
코드를 효율적으로 관리하고 여러 개발자가 함께 작업할 때 충돌을 방지하려면
Git과 SourceTree 같은 도구를 활용한 협업 방법을 익히는 것이 필수이다.
Git Flow를 사용하여 Git과 SourceTree를 통한 협업 방법에 대해 공부한 글이다.
Git Flow란 무엇인가?
💡우선 Git 버전관리의 개념에 대해서 !
- Git은 코드의 버전을 관리하기 위한 핵심 도구이며,
- Git Flow는 Git을 사용하여 프로젝트를 조직화하고 협업하기 위한 워크플로우 중 하나이다.
- 즉, Git Flow는 Git 버전 관리를 더 효율적으로 활용하도록 도와주는 방법 중 하나로 볼 수 있다.
Git Flow는 Git을 활용한 소프트웨어 개발 프로젝트의 워크플로우를 구성하는 일련의 규칙과 절차이다.
이 접근 방식은 개발, 테스트, 배포 단계를 체계적으로 관리하고,
다수의 기능을 동시에 개발하고 통합하는 데 도움을 주기 때문에 중요하다.
Git Flow의 핵심 개념
1. 브랜치 구조
Git Flow는 주요한 브랜치로 다음과 같은 브랜치를 사용:
- master: 제품의 안정적인 버전을 관리하는 브랜치
- develop: 개발 중인 기능을 통합하고 테스트하는 브랜치
- feature: 새로운 기능을 개발하는 브랜치
- release: 새로운 릴리스를 준비하는 브랜치
- hotfix: 배포된 버전에서 발생한 긴급한 버그를 수정하는 브랜치
2. 기능 브랜치에서 작업
새로운 기능을 개발하려면 feature 브랜치를 생성하고 해당 기능을 개발한다.
이 브랜치에서 작업을 완료한 후에는 develop 브랜치로 통합한다.
#상세예시
새로운 기능을 개발하려면 feature 브랜치를 생성하고 해당 기능을 개발합니다. 예를 들어, 프로젝트에 댓글 기능을 추가해야 할 때 다음과 같은 예시를 고려해보겠습니다.
기능 브랜치 생성: 댓글 기능을 개발하기 위해 feature/comment-system 브랜치를 생성합니다.
git checkout -b feature/comment-system
기능 구현: feature/comment-system 브랜치에서 댓글 관련 코드를 작성하고 필요한 변경 사항을 커밋합니다.
# 댓글 관련 코드 작성 및 변경
git add .
git commit -m "댓글 기능 추가"
테스트: 작성한 기능을 테스트하여 예상치 못한 버그를 찾고 수정합니다.
# 테스트 실행 및 버그 수정
# 테스트 실행 및 버그 수정
기능 완료: 댓글 기능이 정상적으로 작동하고 테스트를 통과했으면 작업을 완료합니다.
# 기능 완료 및 커밋
git add .
git commit -m "댓글 기능 완료"
개발 브랜치로 통합: 기능 개발이 완료되면 feature/comment-system 브랜치를 develop 브랜치로 통합합니다.
git checkout develop # develop 브랜치로 이동
git merge feature/comment-system # feature 브랜치를 develop 브랜치로 병합
프로젝트 전체 테스트: develop 브랜치에는 댓글 기능과 다른 기능들이 함께 통합되어 있으므로 프로젝트 전체를 다시 테스트하여 호환성과 버그를 확인합니다.
이와 같이 기능 브랜치에서 작업한 후 develop 브랜치로 통합함으로써
여러 개발자가 병렬로 작업하더라도 코드 충돌을 방지하고 효율적으로 협업할 수 있습니다.
3. 릴리스 브랜치 생성 및 배포
새로운 릴리스를 준비하려면 release 브랜치를 생성하고
여기에서 버그 수정 및 문서 업데이트를 수행한 후 릴리스를 완료한다.
4. 핫픽스 브랜치에서 버그 수정
배포된 버전에서 긴급한 버그를 수정하려면 hotfix 브랜치를 생성하고 해당 버그를 수정한 후, 핫픽스를 배포한다.
5. develop 브랜치로 병합
기능, 릴리스, 핫픽스 작업이 완료되면 변경 사항을 develop 브랜치로 병합하여 시스템 전체의 테스트를 수행한다.
6. main 브랜치로 병합
테스트가 완료되고 안정된 상태인 경우, develop 브랜치를 main 브랜치로 병합하여 새로운 안정 버전을 배포한다.
SourceTree를 활용한 Git Flow
Git Flow를 쉽게 관리하려면 SourceTree와 같은 Git GUI 도구를 사용할 수 있다.
SourceTree를 활용하여 Git Flow를 설정하고 사용하면 프로젝트의 협업과 개발 과정을
더욱 효율적으로 관리할 수 있다.
Git Merge와 Git Rebase: 브랜치 관리의 두 가지 접근 방식
Git에서 사용되는 주요 브랜치 관리 방법인 Git Merge와 Git Rebase의 차이와 개념에 대해 알아보자.
1) 기능 브랜치 합치기 전 (master, feature-1, feature-2)
2) merge 사용
3) rebase + merge 사용
출처 - https://devsurimlee.tistory.com/34
출처 - https://wbluke.tistory.com/26
Git Merge: 브랜치 병합의 안전한 방법
Git Merge는 가장 기본적인 브랜치 병합 방법 중 하나이며, 이 방법은 다음과 같은 특징을 가진다
- 새로운 커밋 생성: 두 브랜치를 병합할 때, 새로운 커밋이 생성됩니다.
이 커밋은 두 브랜치를 통합하는 과정을 나타냅니다. - 비선형적인 히스토리: Git Merge를 사용하면 브랜치 히스토리가 비선형적이 됩니다.
병합되는 브랜치의 커밋들은 그대로 남아 있고, 추가적인 병합 커밋이 생성됩니다. - 안전한 방법: Git Merge는 안전하고 직관적인 방법으로 브랜치를 병합할 수 있습니다.
코드 충돌이 발생하면 Git이 충돌을 감지하고 개발자에게 해결 방법을 안내합니다.
사용 예시:
# develop 브랜치에서 feature 브랜치를 병합
git checkout develop
git merge feature
Git Rebase: 브랜치 히스토리의 재배치
Git Rebase는 브랜치의 커밋 히스토리를 변경하거나 재배치하는 방법입니다.
Git Rebase를 사용하면 다음과 같은 특징을 얻을 수 있다.
- 선형적인 히스토리: Git Rebase를 사용하면 브랜치의 커밋을 대상 브랜치의 최신 커밋 위로 옮겨서
브랜치 히스토리를 선형적으로 유지할 수 있습니다. - 커밋의 SHA-1 해시 변경: Rebase를 사용하면 브랜치의 커밋 히스토리가 변경되므로,
커밋의 SHA-1 해시가 변경됩니다. - 브랜치 정리: Git Rebase를 사용하면 브랜치의 커밋 히스토리가 정리되며, 중복된 커밋이 제거될 수 있습니다.
사용 예시:
# feature 브랜치를 develop 브랜치 위로 재배치
git checkout feature
git rebase develop
어떤 방법을 선택해야 할까?
Git Merge와 Git Rebase 각각의 방법에는 장단점이 있으며.
어떤 방법을 선택해야 할지는 프로젝트의 요구 사항과 개발자들의 선호도에 따라 다를 수 있습니다.
- Git Merge는 안전하고 직관적이며, 다른 개발자와 협업할 때 유용합니다.
- Git Rebase는 브랜치 히스토리를 깔끔하게 유지하거나 중복된 커밋을 정리할 때 사용하며,
더 선형적인 히스토리를 원할 때 유용합니다.