지난 번에 협업 repo에서 새 프로젝트를 clone한 것에 이어서, git-flow에 대한 브랜치 규칙과 commit 규칙까지 설정하였다.
이번에는 git fetch로 현재까지 작업내용을 불러와 git graph를 확인하고, 해당 브랜치의 변경사항을 pull 한 후,
이어서 기능별 브랜치를 생성해 작업한 후 해당 기능별 브랜치에 add - commit - push 하는 과정을 정리해 보려고 한다.
1. git graph에서 브랜치 확인하기
- git fetch --all : git graph에서 git-flow를 확인한다.
$ git fetch --all
2. 브랜치 전체 목록 확인하기
- 브랜치 전체 목록 확인
$ git branch -a
remotes/origin/~~~ : 원격저장소의 브랜치다.
- 현재 브랜치 확인
$ git branch
3. dev 브랜치로 이동하기
* switch는 git checkout에서 분할된 명령어로 git에서 checkout은 branch를 변경하거나 혹은 파일을 복원하는데 사용하는데, checkout에 너무 많은 기능이 물려있어서 switch / restore가 추가가 되었다. switch는 branch 변경, restore은 파일 복원 시에 사용한다
$ git switch dev
4. dev 브랜치 모든 기록 가져오기
❗git pull을 진행하지 않고, 작업 후 커밋 등등 시 충돌이 발생할 수 있다. 작업 전 반드시 해당 브랜치를 pull 후에 작업한다.
$ git pull
5. dev 브랜치에서 기능별 브랜치를 생성
이슈 번호로 기능별 브랜치를 생성한다 - ex) 001
- 브랜치 생성방법 1
브랜치만 생성하기
$ git branch 001
- 브랜치 생성방법 2
브랜치 생성과 checkout을 동시에 실행할 수 있다.
$ git checkout -b 001
또는
$ git switch -c 001
둘 다 같은 기능을 한다.
브랜치 생성 완료
- 브랜치 삭제
1. 로컬 브랜치를 삭제
$ git branch -d 001
2. 가끔 브랜치 삭제시 정상적으로 머지가 되어있지 않거나 충돌이 해결되지 않은 브랜치의 경우 아래와 같은 메시지와 함께 삭제가 불가능 할때가 있는데 병합 상태와 관계없이 강제로 삭제하려면 -D를 사용한다.
error: The branch ‘branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D branch'.
$ git branch -D 001
3. 원격 저장소 브랜치 삭제
$ git push origin --delete 001
6. 작업 진행 하기
위에서 branch 생성과 동시에 checkout 했기 때문에 001브랜치임을 다시 한번 확인하고, 이제부터 편하게 작업을 진행하면 된다.
7. 작업 후 add - commit - push 하기
지난번에 설정한 git commit convention 규칙에 맞게 커밋을 작성한 후 push한다.
이슈 번호가 001, type이 chore 일 경우 > chore : 001 - 기존의 작성된 코드 옮기기
Feat : 번호-새로운 기능을 추가
Fix : 번호-버그 수정
Design : 번호-CSS 등 사용자 UI 디자인 변경
Refactor : 번호-프로덕션 코드 리팩토링
Chore : 번호-패키지 관리자 구성 등 업데이트, Production Code 변경 없음
Merge pull request #순서 from Urscent-FE/브랜치
> 커밋 규칙
기능 : 이슈번호-작업내용 :wq(줄바꿈)
- 세부 작업 내용
- 세부 작업 내용
> 커밋 예시
Feat : 001-회원 가입 기능 구현
- SMS, 이메일 중복확인 API 개발
- add(해당 브랜치인지 확인)
$ git add .
- commit
- 커밋 메세지에 상세 내역 입력하는 방법(여러줄 입력하는 방법) - " 따옴표를 닫기 전에 enter하고 여러줄 입력 후 마지막에 "로 닫아주기
$ git commit -m "commit message line 1
commit message line2
commit message line3
...
commit message last line"
- 커밋 수정하는 방법
$ git commit --amend
git commit --amend 후 => i => 커밋 메세지 변경사항 수정 후 => 마지막에 :wq로 탈출 하여 커밋 수정완료
- push
push할 때, origin 001 브랜치에 push한다.
$ git push origin +001 // origin 001 브랜치에 푸쉬
8. Merge : Pull requests
github에서 커밋 완료 확인, dev브랜치로 merge(병합) 시킨다.
- New pull request
- Comparing changes
- 왼쪽은 병합시킬 base브랜치(main), 오른쪽은 비교하여 병합할 compare(dev)브랜치를 설정한다.
- ex) base : dev <- compare : 001 => 001브랜치를 dev브랜치로 병합시킴
- Pull request 메세지 작성
Reviewers 코드리뷰를 요청할 사람을 지정해 준다.
- merge 시 자동으로 생성되는 커밋 메세지
Merge pull request #순서 from Urscent-FE/dev
'Git & GitHub' 카테고리의 다른 글
[Git & GitHub] 깃허브로 협업하기 - fork / pull requests (0) | 2023.04.03 |
---|---|
[Git & GitHub] 깃허브로 협업하기 - (2) Git-flow(branch, commit Convention) (0) | 2022.11.23 |
[Git & GitHub] 깃허브로 협업하기 - (1) Organization, clone (0) | 2022.11.23 |