Git & CS

1일 1커밋을 위한 브랜치별 커밋하기

승민아 2024. 9. 19. 14:24

1일 1커밋으로 깃허브에 잔디를 빼곡히 채우고 싶어서

기능 구현이나 스타일 변경등의 커밋을 한번에 하지 않고

미루고 종류별로 하루에 한개씩 커밋을 했다.

 

그런데 A 기능을 구현하고 그 클래스 또는 파일에서 B 기능을 위한 변경 사항이 있을때

커밋 기록으로 A -> B를 남기기가 어려운 부분이 있다.

그래서 A를 커밋하고 B를 위한 코드를 변경하고 커밋해야하는 부분이지만

B를위한 코드의 변경 내용을 기억하거나 주석으로 남겨놓아 커밋을 미루기도 어려운 부분이다!

 

그래서 로컬에서 브랜치별로 기능을 구현하고 커밋을 해놓는다.

그 커밋 내용을 1일 1커밋을 위해 하루에 하나씩 원격 저장소에 브랜치를 올리거나 main 브랜치에 합치면 된다...!

 

방법을 한번 보자~

 

브랜치의 생성은 

브랜치 조회

현재 로컬 저장소에 poster-achieve, poster-sort 브랜치별로 기능 커밋을 해두었다.

이 기능들을 순서에 맞게 main에 붙일 것이다.

poster-achieve를 먼저 붙이고 poster-sort를 붙일 예정이다.

 

원겨 저장소에 브랜치 생성하며 push하기

 poster-achieve 브랜치에서 위의 명령어를 사용해서

원격 저장소에 poster-achieve를 브랜치 생성과 동시에 push 한다.

 

pull request로 main에 병합

pull request로 main 브랜치에 병합을 해주었다.

커밋 메시지는 "feat: 버킷리스트 완료 상태 포함하여 응답"이다.

 

나의 커밋이 원격 저장소의 feature/poster-achieve 브랜치에 잘 올라가있다.

 

 

이제 poster-sort를 main에 병합해보자.

feature/poster-sort 브랜치 생성과 푸쉬

이전의 명령어와 동일하게 로컬의 poster-sort 브랜치를 원격 저장소에 브랜치 생성과 푸쉬한다.

 

pull request로 main에 병합

poster-sort의 커밋 메시지는 "feat: 버킷리스트 상태 검색"이다.

 

 

이제 로컬 브랜치에 생성하여 미뤄놨던 커밋이 잘 되었는 지 확인해보자...!

 

 

main으로 이동하고 origin main의 내용을 업데이트하고 다시 추가 작업하기.

main 브랜치로 이동하여 원격 저장소의 main 브랜치 내용을 가져온다.

 

 

원격 저장소의 main 브랜치 커밋 내용

두개의 기능이 main 브랜치에 잘 붙어있다.

 

이로써 1일 1커밋을 위해 로컬에 브랜치별로 기능을 미리 푸쉬해놓고

원격 저장소에 하나씩 올리면서 미룰 수 있게 되었다.!