티스토리 뷰

브랜치 종류

  • main(구: master) : 프로젝트 최종 배포 중심 브랜치
  • develop: 개발이 진행되는 브랜치, 배포할 수준의 기능을 갖추면 relese 브랜치로 머지
  • feature: 기능을 개발하는 브랜치, develop 브랜치에서 파생되는 브랜치며 develop 브랜치로 머지
  • release: 개발된 내용을 배포하기 위해 준비하는 브랜치, 충분한 테스트를 통해 버그를 검사하고 배포할 준비가되었다고 판단하면 main으로 머지하여 배포한다. 버그 수정 내용을 develop 브랜치에도 반영하고, 최종적으로 main에 머지
  • hotfix: 출시 버전(main)에서 버그를 수정하는 브랜치, main브랜치에서 생성되며, 수정이 완료되면 dev, main 브랜치에 수정 사항을 반영 

브랜치 네이밍

  • feature: feature/{기능 요약} or feature/{issue-number}-{기능 요약}
  • release: release-{버전} or release/{버전}
  • hotfix: hotfix-{버전}

과정 

  1. main 브랜치에서 개발 시작
  2. 기능 구현 및 버그가 발생하면 issue를 작성한다.
  3. dev 브랜치로부터 feature 브랜치를 파생하고, feature 브랜치에서 기능구현
  4. PR 후, feature 브랜치에서 dev 브랜치로 merge
  5. 개발이 끝나면, dev 브랜치로부터 release 브랜치를 생성해 최종 테스트 진행
  6. 테스트 성공 -> release 브랜치에서 main으로 머지
  7. main 브랜치에서 버전 태그를 추가하여 배포
  8. main 브랜치에서 버그가 발생하면 hotfix 브랜치에서 버그를 수정한다. 버그 수정이 끝나면 dev, main 브랜치에 merge 하고 main 브랜치에서는 버전을 추가하여 배포

commit message 

구조 

<type>(<scope>): <subject>	# 헤더
<BLANK LINE>
<body>						# 본문
<BLANK LINE>
<footer>					# 바닥글
  • <type>: 해당 commit 의 성격을 나타낸다. 아래 중 하나
  • <body>: 헤더에서 생략한 상세 내용작성
  • <footer>: 어떤 이슈에서 왔는지와 같은 참조 정보를 추가하는 용도 e.g.) 특정 이슈를 참조하려면 cloase #{이슈번호}와 같이 추가하면 된다. 
  • 어떻게 보다는 무엇과 왜를 설명하는 내용쓰기 

Commit Type

  • feat - 새로운 기능에 대한 커밋
  • fix - 버그 수정
  • test - 테스트 코드, 리팩토링 테스트 코드 추가
  • refactor - 코드 리팩토링 
  • chore -  빌드 업무 수정, 패키지 매니저 수정
  • style- 코드 포맷팅, 세미클론 누란, 코드 변경이 없는 경우 (코드 의미에 영향을 주지않는 변경사항)
git add . #변경 사항 전체를 stage 상태로 전환
git commit -m "커밋 제목
#커밋 제목 밑에 추가 부연설명을 달기 위해서는, 제목에 "엔터(줄바꿈) 2번" 한 후에 설명을 적으면 된다.

부가 설명"
git push origin main #원격저장소에 커밋 보내기

+
git commit -am "커밋 메세지"  #add와 commit 동시 실행
git diff #commit간 차이 확인
git log #커밋 목록 확인, 시간 순으로 최신 commit 기록부터 내림차순으로 나열 HEAD가 가리키는 커밋이 가장 최신 커밋
git log 파일이름 #특정 파일 로그 확인

#amend는 개인이 작업할 때만 사용해야 한다. 
git commit --amend #가장 최근 커밋을 수정하는 편리한 방법
git commit --amend -m "바뀔 커밋 메세지" #-m 옵션을 추가하면 편집기를 열지않아도 명령줄에 새 메세지를 전달할 수 있다.

#브랜치 & 깃 상태 확인
git branch #전체 브랜치 목록
git status # 현재 브랜치 위치 확인 및 commit 상태 확인

# 변경 사항이 있을 경우 or 브랜치를 파생할 때
git pull origin {현재 브랜치}
  • 내가 어떤 브랜치에 있는 지 알고 싶다면 git status
  • 상세한 커밋 목록을 확인하고 싶다면 git log

Issue 

키워드를 사용해 PR을 이슈에 연결하기

Linked pull request을 통해 수동으로 작업하는 것 말고도, 

PR 혹은 commit message에서 키워드를 사용해 이슈에 연결가능

 

키워드 목록

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved
{키워드} #{이슈 넘버}
🤯기본 브랜치(repository's default branch)에 merge될 경우 참조된 이슈가 자동으로 close된다. 

dev & feature 브랜치 생성 

git branch develop	# develop 브랜치 생성
git checkout develop # develop 브랜치로 전환
git pull origin main	# 현재 브랜치(develop)로 리모트 레포지토리의 main(상위) 브랜치 가져오기
git push origin develop	# 새롭게 만든 브랜치를 리모트 레포지토리로 push

 

댓글