깃 풀(git pull)에 대한 궁금증이 있습니다!
20
작성한 질문수 5
책과 강의를 보면 작업 전, 후로 풀(pull)하시는 것을 말씀해주셨습니다! 혹시 풀(pull)을 어디서 어느 브랜치로 받는 것일까요?
원격 main <-> 로컬 v1.0
해당 브랜치를 대상으로 진행하면 로컬에서 병합 시도를 하는 것 같은데 병합해서 한 번에 원격으로 올리는 것이 맞을까요?
원격 v1.0 <-> 로컬 v1.0
동일한 브랜치에서 풀을받는다면 어찌보면 강의에서 말씀하셨던 main처럼 기준이 되는 브랜치에서 작업을 하는 것일텐데 맞을까요?
기준 브랜치에서 작업하는 것은 권장하지 않으시는 것 같아서 질문드립니다.
답변 1
0
질문을 정말 잘 정리해주셨습니다! 😀
작업 전후로 pull을 받는 위치는 현재 자신이 작업하고 있는 브랜치라고 보시면 돼요.
맨 마지막에 말씀 주신 것처럼 기준 브랜치인 main은 작업용 브랜치로 사용하지 않아요. 보통 버전이 붙어있는 이름의 브랜치나, 'develop' 브랜치, 'feature/xxx' 브랜치 등이 작업용 브랜치예요.
내가 로컬 v1.0을 작업중이라면 pull은 원격 v1.0로부터 변경분을 내려받게 됩니다.
pull: 원격 v1.0 → 로컬 v1.0
병합은 작업 브랜치(예:v1.0)가 안정적인 것이 확인될 때쯤(개발자가 느끼기에) 기준 브랜치인 main에 합치게 돼요. 작업 브랜치에서 변경된 부분이 main에 반영되는 거예요.
두 가지 방법이 가능해요.
merge 1:
① 로컬 v1.0 & 원격 v1.0(push로 이미 같은 상태) → 로컬 main으로 merge
② 로컬 main → 원격 main으로 push
merge 2:
① 로컬 v1.0 → 원격 v1.0 push → PR(Pull Request) main merge
실무에서는 보통 PR(Pull Request)을 통해 병합하는데, 조직마다 세부 방식은 다를 수 있어요.
0
답변 감사합니다. 근데, 제가 제대로 이해를 못한 것 같습니다.😭
"pull: 원격 v1.0 → 로컬 v1.0" 이렇게 말씀해주셨습니다.
원격과 로컬, 동일 브랜치로 풀받아서 작업을 진행하게 되면 아래와 같은 상황이 예상됩니다.
팀원 한 명(A)이 로컬 v1.0로 푸시 수행
원격 v1.0 커밋되어 업데이트
동일 브랜치라서
PR(Pull Request) 작업 미수행 (검증되지 않음)
다른 팀원(B)이 로컬 v1.0 작업 수행 후 풀(PULL) (검증되지 않은 코드를 내려받음)
혹시, "원격 v1.0 → 로컬 v1.0" 해당 의미가 로컬에서 베이스 브랜치를 최신화시켜서 작업을 위한 하위 브랜치를 만드는 것(checkout)을 의미할까요?
그렇다면, "베이스 브랜치를 v1.0", "하위 브랜치를 v1.1"로 예시로 든다면,
베이스 브랜치(원격, v1.0) → 작업 브랜치(로컬의 하위 브랜치, v1.1) 이렇게 수행된다면 작업 후의 풀(PULL)은 첫 질문의 원격 main ↔ 로컬 v1.0 처럼 병합 시도를 하는데 괜찮을까요?
다시 질문드려서 죄송합니다....😭
0
이해할 때까지 계속 질문 주셔도 저는 즐거우니 편하게 질문해주세요!! 😊
우선 PR에 대한 개념은 부가적인 검증 기능이기 때문에 완전히 빼고 생각하시는 게 이해하기 쉬워요. PR을 반드시 거치지 않는 회사들도 많고, 기본적인 개념 이해 후에 추가로 생각하시면 돼요!
로컬 v1.0과 원격 v1.0은 같은 브랜치를 로컬과 원격에 각각 두고 있는 것이라고 보시면 돼요.
원격 v1.0 브랜치는 백업 같은 용도이고, 팀원들이 작업한 것을 원격에 백업해두면, 다른 팀원도 코드를 동기화 하기 위해 pull을 수시로 받아야 합니다.
pull이란 다른 팀원이 push한 변경된 코드만 받아오는 개념이에요. 계속 같은 코드로 동기화하는 과정이라고 보시면 됩니다.
(참고로 충돌이 발생할 수 있는데, 같은 파일의 거의 비슷한 위치를 동시에 고친 경우에는 어떤 팀원의 코드를 남길 건지 결정해야 하는 상황이 있을 수 있어요.)
우선 여기까지 정리해보시고 또 궁금한 게 있으면 질문 주세요!!
섹션7 수업자료 업로드 부탁드립니다.
0
24
2
gitforwindows에서 맥은 뭘 다운받아야 하나요...?
0
31
2
d-day count소스및 그라비티에서 기술하면 뭔가 내용이 안나오네요
0
21
1
간단한 사이드 프로젝트 작성에도 Max 요금제를 결제하는게 좋을까요?
0
58
2
git 커밋한 내용 궁금합니다.
0
27
1
충돌의 최소화 파트 질문입니당!
0
29
1
자바스크립트 파일 중, DOM 영역에서 querySelector가 아닌 다른 함수를 쓰는데 괜찮을까요?
1
81
2
48강에 필요한 아스키아트 자료가 첨부되어 있지 않습니다.
0
54
2
mac python 3.10 - permission denied
0
54
1
26강 [게임 메인 루프 및 메뉴 구현]에서 2가지 오류가 있어서 남기게 되었습니다.
0
69
2
Rider에서 .ignore 플러그인으로 .gitignore 파일 내용 생성시 Csharp으로 검색되는 내용이 없습니다.
1
67
2
EC2 설정보다 RDS를 먼저 설정하는 이유
0
103
1
pull할때
0
41
1
기획과 개발 반복 실습 질문
0
139
1
Claude max 와 Chat gpt Pro
0
245
1
[널널한 개발자 바이브코딩 팔로워들] 오픈 카톡방 개설!
0
145
2
깃헙 작업 완료된 develop 브랜치 질문
0
77
2
강의자료 부탁드립니다.
0
47
1
자동으로 깃커밋내용 처리하는 부분은 어떻게 하는건지 궁급합니다.
0
56
1
git 스테이징 에러 문의
0
91
3
강의자료 부탁드립니다.
0
36
1
pull request에 관해
0
35
1
강의 자료 부탁드립니다.
0
45
1
[질문] git-flow 에서 release 브랜치 생성
0
58
1





