Multi Developer SuHo

Git 브런치(Branch), Rebase, stash 본문

Git 기록

Git 브런치(Branch), Rebase, stash

Dreaming Developer Student 2025. 2. 7. 09:45
SMALL

안녕하세요 이번에는 깃에서 브런치(Branch)와 Rebase, statsh 에 대해 알아보고, 직접 실습하여 깃에 대한 접근을 가깝게 느껴보도록 하겠습니다. 

깃허브 대표 로고

 목차
1. 브런치(Branch)
1-1. 브런치(Branch) 란?
1-2. 브런치 생성
1-3. 브런치 목록 확인
1-4. 브런치 삭제

1-5 브런치 이름 수정
2. Rebase
2-1. Rebase란?
2-2  인터랙티브 리베이스 ( git rebase -i )
2-3. git reabase - i옵션 명령어 
3.  Stash
3-1. Stash란?
3-2. Stash 사용 방법

 

서론

먼저 깃 브런치에 대해 학습하기 전  브런치라고 들어보셨나요?  그럼 혹시 깃허브(Git hun) 에서 혹시 이런 요소를 보신적 있으신가요?  뭔가 그림으로만 봤을 때는 연결되는 것처럼 보이시죠?  느낌이 오시나요? 그럼  깃에서 브런치에 대해 알아보고 Rebase와 Stash에 대해 간략히 알아보는 시간을 가져보겠습니다. 

본론

1. 브런치(Branch)

 

1-1. 브런치(Branch) 란?

독립적으로 개발을 진행할 수 있도록 만들어진 코드의 분기점이며, 코드의 독립적인 작업의 내용을 만들때 사용합니다.

 

1-2. 브런치 생성

 

$ git branch [생성할 브런치 이름]


1-3. 브런치 목록 확인

# 브런치 목록 확인
git branch
# 로컬 저장소 브런치와 원격 저장소 브런치도 확인
git branch -a



1-4. 브런치 삭제

# 브런치 삭제
# 작업이 끝나고 브런치를 제거해야한다.
git branch -d 삭제할 브런치 이름 # 브런치에 병합을 한 브런치만 삭제할수 있다.
git branch -D 삭제할 브런치 이름 # 강제 삭제 병합을 안한 브런치도 삭제할수 있다.

 

1-5. 브런치 이름 수정 

# 브런치의 이름 수정
git branch -m 이전 브런치의 이름 새로운 브런치의 이름
git branch -m <이전 브런치 이름> <새로운 브런치의 이름>


실습 문제 💯

sample 이라는 브런치를 생성하고 로컬 저장소에서 원격 저장소인 깃허브로 업로드 하고, 로컬 저장소에서 smaple 브런치에 대한 이름을 변경 및 삭제해보는 과정을 살펴보겠습니다.

1. smple  이라는 브런치 생성

$ git branch sample

 


2. 브런치 목록 확인

$ git branch

 

 

이렇게 실행하면 브런치에 목록을 확인할 수 있습니다. 

3. sample 로 브런치 변경

$ git switch [변경할 브런치 이름]


현재 브런치가 master 로 default로 되어있기 때문에  브런치를 sample로 변경합니다.

$ git switch sample


브런치가 변경되었다는 것을 확인할 수 있습니다.


4. sample 브런치에 push하여 원격 저장소에 업로드 합니다.

git push <원격저장소> <브랜치이름>

 

 

 

5. 원격 저장소에서 확인

 

이렇게 브런치가 생성된 것을 볼 수 있습니다. 그냥 깃허브에서도 브런치를 생성할 수 있습니다. 

여기서도 오른쪽 상단에 있는 New branch 버튼을 클릭해서 생성할  수 있습니다.

6. 브런치 이름 변경
브런치

 

 

7. 브런치 이름 변경후 확인

 


8. sample 브런치 삭제후 목록 확인

 

 

2. Rebase(리베이스)

2-1. Rebase(리베이스) 란?

브런치의 커밋 이력을 수정하거나 삭제 등의 정리를 하는 목적 기존의 커밋내용을 새로운 브런치의 위로 위치시키는 것

 

2-2. 인터랙티브 리베이스 ( git rebase - i )

Git 커밋 히스토리를 정리하고 수정할 수 있는 강력한 도구를 말합니다.

 

git rebase -i 를 실행한 화면입니다. 여기서도 다양한 옵션들을 통해 커밋에 대한 내용을 수정하거나 삭제할 수 있습니다. 현재는 커밋한 내용이 없기 때문에 "noop"이라고 뜨는 이유입니다. 

 

2-3. git reabase - i옵션 명령어 

1. pick : 커밋을 그대로 유지
2. reword : 커밋 메시지를 수정
3. edit : 커밋의 내용을 수정
4. squash : 이전 커밋내용과 합치기
5. fixup : 이전 커밋 내용과 합치는데 메시지를 유지하지는 않는다.
6. drop : 커밋 내용 삭제


3.  Stash

3-1. Stash란?

현재 작업 중인 변경 사항을 임시로 저장하고, 깨끗한 상태로 작업을 계속할 수 있게 해주는 명령어
임시 저장소 라고 생각하시면 됩니다. 

 

3-2. Stash 사용 방법

브런치의 내용을 수정하다가 hotfix 브런치를 생성하고 즉 다른 브런치를 생성하고 잠시 다른브런치로 이동해서 작업을 해야하는 경우
브런치에서 작업하던 내용을 잠시 저장했다가 다른 브런치에서 작업이 끝나면 해당 브런치로 돌아와서 이어서 작업 진행 가능
git stash # 메모리상에 작업내용 저장 index로 저장
git stash pop # 마지막 작업내용 다시 메모리에서 가져오기


결론

이렇게 깃(Git) 에서 브런치와, Rebase, stash 에 대해 알아보았습니다. 어떻게 느끼셧나요? 어려운 부분들도 있을거라고 생각합니다. 깃(Git) 을 잘 활용한다면 버전 관리나 협업 프로젝트에서 팀원들과 소스코드를 효율적으로 관리할 수 있습니다. 감사합니다 !!

 

 

LIST