🤔 git branch 란 ?
-
현재 개발중인 코드에서 코드를 통째로 복사하고 원래코드와 상관없이 독립적으로 여러 기능을 개발하고 싶을때 만드는 것
-
하나의 commit 과 그 부모 commit 들을 포함하는 작업내역.
-
git branch '브랜치명' 으로 브랜치를 생성할 수 있다.
브런치를 생성한후 git checkout `브랜치명` 으로 이동한 후 작업을 시작해야한다.
ex) git branch newBranch : 새로운 브런치를 생성.
git checkout newBranch : 새로 생성한 브랜치로 이동.
⇒ 새로만든 브랜치에서 master 브랜치와는 독립적으로 개발을 할 수 있음.
다같이 확인할 사항.
🤔 원본저장소 Fork ~ PR 까지의 흐름
-
fork : 다른사람의 Github 저장소에 내가 어떤 부분을 수정하거나 기능을 넣고 싶을때 해당
저장소를 내 Github 저장소에 그대로 복제하는것. -
clone : 특정 저장소를 내 컴퓨터에(local 저장소) 에 복사해여 새로운 저장소를 만드는것
-
git clone <https://github.com/`자신의> 깃헙 유저네임`/`저장소이름` // 오늘 미션과 같이 특정 브랜치만 clone 하는경우.
- git clone <https://github.com/`자신의> 깃헙 유저네임`/`저장소이름` -b `브랜치이름` --single-branch
-
add
코드를 클론받고 새로운 코드를 작성했다면 git add 를 해주어 git 이 변경된 사항을
추적할 수 있게 해준다. -
commit
파일 및 폴더의 추가/변경 사항을 내 로컬 저장소에 기록하는것!.
-
push
commit 이후 내 컴퓨터(local)가 아닌 원격 저장소에 변경사항을 업로드하는것.
-
pull request
fork 한 레퍼지토리에 내가 push 한 내용(브랜치) 를 pull request 를 보내
다른 사람 저장소에 내가만든 기능을 추가 할 수 있다.
🤔 git add 와 commit 할때 git 내부에서 일어나는 동작
-
git add
git add 는 현재 브랜치에서 현재 변경된 파일이내 내용이 있음을 알려주는것 ⇒ git 파일을 추적할 수 있게 해준다. 즉 파일의 상태를 Untracked ⇒ Staged 상태로 변경해주는것.
-
git commit
git add 이후 commit 을 해주게 되면 staged 에 있는 상태의 파일들을 하나의 스냅샷으로 찍어 로컬 저장소에 저장하게 된다. 이후 상태는 staged ⇒ Unmodified 로 변경되게 된다.
🤔 깃 branch 전략
-
gitflow 전략
gitflow 에 사용되는 5가지 종류의 브랜치
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
-
개발흐름
- 초기에 master 브랜치와 develop 브랜치가 존재
- devleop 브랜치에는 상시로 버그를 수정한 커밋들이 추가
- 새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성
- feature 에서 완료된 작업 develop 브랜치로 merge
- QA 를 하기위해 develop 브랜치에서 release 브랜치 생성
- QA 를 총해 버그가 수정된 release 브랜치를 master 와 develop 브랜치로 merge
⇒ 일관되게 여러상황을 대처할 수 있음. 변화에 유연함.
⇒ 하지만 브랜치가 많아 복잡 할 수 있다는 생각이든다.
📝 여러가지 branch 전략.
https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html
https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
'부스트캠프' 카테고리의 다른 글
Mongoose 에 TypeScript 적용하기 (0) | 2020.11.27 |
---|---|
TCP/IP, 3-way HandShaking, DNS (0) | 2020.09.05 |
Day4(해쉬와 단위테스트) (0) | 2020.08.29 |
링크드 리스트 (0) | 2020.08.27 |
부스트 캠프 회고. (0) | 2020.08.25 |