1. Branch
[Git Branch 란?]
• Git의 branch를 이용하여 하나의 프로젝트(디렉터리)를 여러 모습으로 관리할 수 있습니다.
• 실무에서 프로젝트를 관리할 경우 운영 용도, 테스트 용도, 새 기능 용도, 버그 수정 용도로 다양한 모습이 필요하게 되는데
그 경우 Git의 Branch를 활용하면 이 모든 모습을 하나의 디렉터리에서 진행할 수 있습니다.
• 또는 여러 작업들이 각각 독립되어 진행될 때 각각의 브랜치에서 작업한 뒤
확정된 것을 메인 브랜치에 통합(Pull Request, Merge Request)하는 방법으로 협업에도 유리합니다.
예) 신기능 1, 신기능 2, 코드 개선, 긴급 수정...
[활용(장점)]
1. 하나의 프로젝트를 여러 모습으로 관리 가능
2. 협업에 유리
[기업에서 Git Branch를 활용하는 방식, GitFlow]
https://nvie.com/posts/a-successful-git-branching-model/
2. 브랜치 생성 / 이동 / 삭제하기
GitFlow를 참고하여 브랜치를 생성, 이동, 삭제해 보겠습니다.
(그냥 예시를 든 것이라 편하게 보거나 무시하면 됩니다.)
[브랜치 명]
• main (운영)
• develop (개발)
• feature (기능 개발)
• fix (수정)
• release (배포)
[운영 방식 예시]
• 새 기능 개발 시 develop 브랜치에서 feature/???로 브랜치 생성하여 개발 후 develop에 머지(PR, MR) 합니다.
• 운영 중 수정이 필요한 부분은 main 브랜치에서 fix/???로 브랜치를 생성하여 개발 후 main, develop 브랜치에 머지(PR, MR) 합니다.
[브랜치 생성]
main은 git init 할 경우 기본으로 생성되는 브랜치이므로 develop, release 브랜치를 생성해보겠습니다.
$ git branch (브랜치명)
$ git branch develop
$ git branch release
fatal: not a valid object name: 'main' 에러가 뜨는 경우 git에 commit 내역이 하나도 없으므로 뜨는 상황입니다.
파일을 하나 추가하고 commit 해줍니다. (one.txt 파일 생성 후 git add & git commit)
[브랜치 리스트 확인]
$ git branch
[모든 브랜치를 출력합니다. -> 원격 저장소와 연동되어 있을 경우 원격 저장소의 브랜치도 출력됩니다.]
$ git branch -a
[브랜치 이동]
develop, release 브랜치로 이동해봅니다.
(checkout 명령어가 Git 2.23 버전부터 switch, restore로 분리)
$ git switch (브랜치명)
$ git switch develop
$ git switch release
[브랜치 생성과 동시에 이동하기]
$ git switch -c (브랜치명)
$ git switch -c test
[브랜치명 수정]
develop로 이동한 상태에서 feature 브랜치를 생성 후 브랜치명을 수정해 봅니다.
$ git branch -m (기존 브랜치명) (새 브랜치명)
$ git switch develop
$ git branch feature/1
$ git branch
* develop
feature/1
main
release
$ git branch -m feature/1 feature/2
$ git branch
* develop
feature/2
main
release
[브랜치 삭제]
feature/2 브랜치를 삭제해봅니다.
$ git branch -d (삭제할 브랜치명)
$ git branch -d feature/2
feature/2 브랜치 삭제
$ git branch
* develop
main
release
3. 여러 브랜치에서 작업해보기
main, develop, release 브랜치에 이동 후 commit 하여 브랜치 별로 다르게 작업해봅시다.
1. main 브랜치 이동 후 one.txt 파일에 main 입력 후 commit
2. develop 브랜치 이동 후 one.txt 파일에 main 입력 후 commit
3. release 브랜치 이동 후 one.txt 파일에 main 입력 후 commit
4. 이후 브랜치 이동하면서 파일의 변화를 확인해 봅니다.
$ git switch main
one.txt 파일 수정
$ git commit -am "main commit"
$ git switch develop
one.txt 파일 수정
$ git commit -am "develop commit"
$ git switch develop
one.txt 파일 수정
$ git commit -am "release commit"
[결과]
'TOOL > Git' 카테고리의 다른 글
[Git] Git 다른 브랜치에서 원하는 Commit 가져오기 (3) | 2022.09.01 |
---|---|
[Git] Git 여러 개의 commit 합치기 (squash, git rebase -i, 병합) (0) | 2022.08.31 |
[Git] Git commit 취소하기, 되돌리기 (reset, revert) (1) | 2022.08.29 |
[Git] Git 기초 사용법 (Local Repository) (0) | 2022.08.28 |
[Git] Git 기초 개념 (Git 사용 전에 알고 있어야 할 개념) (0) | 2022.08.27 |