inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

빠르게 git - 핵심만 골라 배우는 Git/Github

협업하기(2) - 로컬도 변했는데 원격도 변한 경우

브랜치를 따로 파는 이유

1229

이얏

작성한 질문수 37

1

안녕하세요! 강의 진짜 명강의입니다.

이강의에대한 질문을 몇개봤는데 질문의 내용이 비슷하지만 명확한답이없어보여서 다시 질문드립니다.

브랜치로 따로 파는 이유가 무엇인가요? 그냥 master에다가 할수있고 그 작업이 끝나면 또 그 master에다가도 할수 있는거아닌가요?

버전관리시스템 github git

답변 1

3

강민철

안녕하세요, 좋은 말씀 감사합니다 :)

master에 바로 하면 안되는 건 아닙니다.

branch를 따로 파고, 거기서 작업한 뒤 merge(pull request)를 날리는 가장 큰 이유는 아무래도

1. 안전빵

2. branch마다 비슷한 변경사항 그루핑

의 목적이 큽니다.

branch에서 새로운 변경사항/수정사항을 만들고, 시행착오를 겪어도 그 branch에서만 겪고, 테스트도 돌려보고

그 뒤에 (만일 branch에서 작업한 내용이 master에 merge될 수 있을 만큼 코드 자체도 완성도 있고 충돌에 대해서도 안전하고 판단되면 그 때) master와의 merge를 하는 게 이상적입니다.

무작정 master에만 작업하게 됐을 때, pull request에 대해 잘못 승인하게 되면 결국 그냥 pull & push 하는 것과 똑같이 번거로우니까요 :)

2. 예를 들어 버그 수정을 하는 브랜치, 기능 A를 추가하는 브랜치, 기능 B를 추가하는 브랜치 이랗게 나눠 놓으면 pull request가 오는 브랜치만 봐도 이 코드의 목적을 알 수 있겠죠? 이런 식으로 brancj 별로 개발의 기능을 나누고 마치 레고처럼 master에 붙여가며 로젝트를 진행하기도 합니다.

무작정 master에 추가하면, 만약 기능 A를 추가한 과거의 커밋들을 보고 싶을 때, 1번 commit은 버그수정, 2번 commit은 기능A수정, 3번은 기능 B추가.. 이렇게 커밋 내역들의 내용이 뒤죽박죽이 될테니 되게 보기 힘들겠죠..? 그래서 브랜치를 나누는 거랍니다.

pull request에 관해

0

35

1

로컬과 원격의 상호작용 강의 질문

0

130

2

password authentication was removed

0

223

2

section3부터 맥북에서 화면이 안나옵니다.

0

206

2

Git bash 우클릭 보이지 않음

0

349

1

원격 저장소 조회(추가)

0

172

1

혹시 아래처럼 계속 파일을 찾을 수 없다는 건 어떤 의미일까요..

0

137

1

Git 맥북 다운로드

0

292

2

Git bash 다 마우스 우클릭해도 보이지 않습니다

0

412

2

pr 이후 브랜치 삭제 질문드립니다

0

947

2

블로그

0

255

2

github에서 push오류

0

261

1

reset에서 head

0

332

1

git branch 관련 질문

0

217

1

Section 2 / 4강 / 3:23초 질문

0

166

1

diff & revert

0

267

1

이슈 번호를 잘못 명시한 커밋을 삭제하는 방법

0

1179

1

강의 "로컬과 원격의 상호작용 실습 (+충돌이 난 경우)" 편의 영상 7분 38초 쯤에서 질문 드립니다.

0

416

1

mac사용

0

304

1

원격 branch를 checkout 하면서 새 branch를 만드는 방법

0

441

1

git checkout 과 git switch/restore

0

2421

1

로컬 브랜치 관련 질문합니다.

0

196

3

git stash, git tag 에 대한 강의자료가 있으면 좋겠습니다

0

300

1

브랜치를 main(master) 와 동기화 하고 싶을 때

0

9141

1