본문 바로가기

강의/실무까지 사용하는 git과 github

#6 Git, Github 을 조금 더 잘 사용하기 위한 기능😀 (stash, branch 전략)

안녕하세요😀

저번 시간까지 Git과 Github을 사용하여 협업을 하는 방법을 학습하였습니다.

이번 강의는 git을 조금 더 잘 사용하기 위한 기능들입니다. 핵심 기능은 저번 시간 부로 모두 학습을 하였습니다. 지금의 파트는 가벼운 마음으로 학습을 하시고 이후에 필요하실 때 사용을 해주시면 될 것 같아요 :)

 

1. commit 전 임시 저장을 하기 위한 stash

commit을 하기 전에는 다른 branch로 이동이 안됩니다. 그래서 사용하는 기능이 stash입니다. stash를 사용하면 커밋을 하기 전의 작업 내용들을 임시저장을 해줘요. stash list를 사용하면 임시 저장된 작업 내용을 볼 수 있고 필요하실 때 꺼내올 수도 있어요.

예시를 보겠습니다.

added-task2-printing 브랜치에서 master 브랜치로 이동을 하고 싶을 때가 있어요. 커밋을 하지 않고 작성한 내용이 있으시다면, master 브랜치로 이동할 때 에러가 발생합니다.

이때 git stash를 사용하면 added-task2-printing 브랜치의 변경사항이 임시저장이 되고, 변경사항이 지워지겠습니다.

변경사항이 없다면 master 브랜치로 이동할 수 있고 필요하실 때 stash를 통해서 저장해놓은 코드를 꺼내 올 수도 있어요.

# 현재 작업 내용 임시 저장 (커밋이 아니에요)
git stash

# 임시 저장된 작업 리스트 확인
git stash list

# 마지막에 저장한 작업 불러오기
git stash pop

# 또는 특정 작업 불러오기
git stash apply stash@{1}

 

2. branch를 잘 나누고 잘 사용하기 위한 branch 전략과 git flow 사용

회사나 프로젝트마다 branch를 사용하는 방법이 다르겠습니다. branch 전략을 만들 때는 주로 아래의 branch 전략을 참고하여 프로젝트에 맞게끔 커스텀을 하여 프로젝트를 진행해요 :)

아래의 그림을 살펴볼게요.

develop: 개발 브랜치

feature: 기능 개발 브랜치

release: 릴리즈 준비 브랜치

hotfixes: 버그 수정 브랜치

master: 최신 운영 브랜치

 

각각의 브랜치에 맞게 개발이 진행이 되고 서비스가 배포가 되겠습니다 :)

(추가적으로 브랜치에 커밋이 새롭게 생성이 되면 자동으로 배포가 되게 기능을 추가할 수도 있어요. 이를 CI/CD라고 해요. 참고사항으로 알고 있으시면 유용하겠습니다.)

branch 전략이 확정이 되었다면, branch 이름 규칙을 정해서 개발을 진행하는데요.

조금 더 풍부한 기능을 하나 더 말씀을 드릴게요. 그건 바로 git flow입니다. git flow를 사용하면 branch 이름을 만들 때 조금 더 쉽게 만들 수 있어요.

 

앞서 말씀을 드렸지만 branch 전략과, branch 이름 규칙은 정해진 게 없습니다. 설명드린 내용을 이해하고 상황과 프로젝트에 맞게끔 커스텀해서 개발을 진행해주시면 돼요.