티스토리 뷰

개발/git

git branch 사용법 정리

드림&T 2023. 3. 25. 18:52

git를 사용하고 있지만, svn 과 비슷하게 사용하고 있다. 분산과 다양한 브랜치 전략을 이용하여 협업 개발을 하고 있다기 보다는 1인 개발자로서 버전 관리만 하다보니 평범한 기능들만 사용하게 된다. 그래도 branch 기능을 사용한다면, 현재 운영버전인 소스를 안정적으로 운영하면서, 데이터 모델의 재편이나 화면 레이아웃의 대대적 리뉴얼등 대규모의 작업을 하면서도 소소한 수정들을 운영소스에 반영하는 등 개발 소스에 대한 운영방안이 폭 넓어지게 된다. 

git 을 처음 배우게 되면 main (혹은 master) 브랜치로만 개발을 진행하고 있을 것이다. 이렇게 개발하는 건 git 의 장점을 충분히 활용하고 있지 못한 것이다. 새로운 branch 를 만든다는 개념은 현재 운영중인 소스를 카피해서 별도로 폴더를 만들어놓는 정도라 보면된다. 그 폴더는 심지어 별도도 아니고, 같은 위치에서 서로다른 버전으로 관리가 될 수 있는 수준이다. 

현재 branch 정보 조회하기

생성하기 전에, 현재 branch 가 무엇인지, 전체 branch list 를 확인하고 싶다면 아래 명령어로 확인할 수 있다. 현재 branch 에는 * (별표시)가 붙어 있다. 참고로 q 를 입력하면 리스트 조회한 화면에서 빠져나올 수 있다.

> git branch -l
  list
  main
  v001-post
* v002-sms
(END)

git branch 생성하기

이제 브랜치를 하나 만들어보자. "v003-addInfo" 라는 이름으로 브랜치명을 설정할 예정이다. 아래와 같이 실행하면 브랜치가 새로 생성된다.

> git branch v003-addInfo
반응형

특정 branch 로 변경하기

위에서 브랜치를 만들었을 뿐이지, 그 해당 브랜치로 이동(변경)한 것은 아니다. 특정 브랜치로 변경하고 싶다면 아래 git checkout 명령어를 이용해서 하면 된다. 

> git checkout v003-addInfo
Switched to branch 'v003-addInfo'

 

개발 시작

이제 개발을 시작한다. 파일을 추가하고 삭제도 하고, 기존파일을 변경을 해보자. 나는 대략 아래 3개 파일을 수정했다. git add, git commit 까지 진행해놓는다. 잘 모르면 여기를 눌러 참고한다. 

> git status
On branch v003-addInfo
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   app01/src/main/java/com/expand/Card0301.java
	modified:   app01/src/main/resources/mapper/Card03.xml
	modified:   app01/src/main/resources/templates/card03.html

 

Main 브랜치와 소스 병합처리

새로 만든 브랜치에서 개발하고 테스트까지 완료 했다면, 현재 운영중인 시스템 소스로 병합(Merge)할 차례이다. 우선 운영중인 브랜치로 이동한다. 내경우 main 브랜치가 그 역할을 하고 있다. main 으로 이동한다.

> git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

 

main 으로 이동하고, 소스를 병합할 브랜치명을 가지고 git merge 명령어를 수행하면 된다. 끝.

> git merge v003-addInfo
Updating ec255ad
Fast-forward
 app01/src/main/java/com/Card0301.java | 20 ++++++++++++++++++++
 app01/src/main/resources/mapper/Card03.xml  | 50 ++++++++------------------------------------------
 app01/src/main/resources/templates/card03.html   |  2 +-
 3 files changed, 29 insertions(+), 43 deletions(-)
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함