안녕하세요...
마지막 단계를 깨러 왔답니다?
feature 브랜치 병합하기
개발자들은 주로 큰 프로젝트를 개발할 때 작업을 feature 브랜치에 하고
준비가 되면 그 작업들을 통합시킨다고 하네여
또 메인 브랜치에 있을 때만 push와 pull을 수행할 수 있다구 합니다.
=> 이렇게 하면 main은 항상 원격 브랜치의 상태와 항상 최신의 상태로 유지될 수 있다!!!
그래서 작업흐름은 두 가지로
- feature 브랜치의 작업을 main브랜치로 통합
- 원격 저장소에서 push하고 pull하는 작업

할게 많습니다 ! 행운을 빕니다 :>
ㄴ 그러세요 그럼 ㅉ
git fetch
git rebase o/main side 1
git rebase side1 side2
git rebase side2 side3
git rebase side3 main
git push
원격작업과 merge하기
새로운 작업들을 원격 저장소로 push하기 위해 원격 저장소의 최근 변경들을 합치기만 하면 됨!
=> 즉 원격 브랜치로 rebase를 할 수도 merge를 할 수도 있다는 것
rebase 장단점
장점
- 커밋 트리를 깔끔히 정리해서 가독성이 좋다
- 모든 게 한 줄에 있기 때문!
단점
- 커밋 트리의 (보이는)히스토리를 수정하게 됨
- 실제 작업이 실행됐던 순서를 정확히 알 수 없음
수정 환경 이력 보존 => merge
안 그래도 되면 => rebase

점점 난해해지는 트리들

OMG 겨우겨우 완성했는데 이게 뭐죠?
git fetch;
git checkout C2;
git merge C8;
git merge C4;
git merge C7;
git branch -f main C11;
git checkout main;
git push;
제 코드는 이건데 정답코드는 훨씬 짧네요
git checkout main;
git pull;
git merge side1;
git merge side2;
git merge side3;
git push;
원격 - 추적 브랜치

예 뭐 그렇다네요
자 이제 중요한 명령어 나옵니다
- git checkout -b totallyNotMain: totallyNotMain이라는 이름의 새 브랜치를 만들고 거기로 이동해!
- o/main: 근데 이 브랜치는 원격의 o/main을 추적(팔로우) 하게 설정해 줘!
이렇게 하면 브랜치 이름은 totallyNotMain이지만, git push를 하면 원격 저장소의 main 브랜치로 작업 내용이 쏙 들어가는 마법이 일어나. ✨
사실 잘 이해가 안 돼서 제미나이한테 물어보니...
저렇게 친절히 대답해주더라구요
ㅎㅅㅎ
git commit;
git pull --rebase;
git push;
Push의 인자들
아 근데 이제 그만하고싶다
재미가그닥없어요
장난입니다~
이런말하면안되겠지요?
자 이제 push의 인지들에 대해 배워보겠습니다
git push <remote> <place>
일단 place인자의 의미는 멀까?
git push origin main
해석해보면
- 내 저장소에 있는 main 이란 이름의 브랜치로 가서 모든 커밋 수집
- 그 다음 origin의 main 브랜치로 가서 이 브랜치에 부족한 커밋을 채워 넣고 완료 되면 알려줌
한 마디로 push할 위치를 지정하는 것이라고 생각하시면 됩니다!!
<place> 인자에 대한 세부사항들
소스와 destination 따로 지정하여 push하기 !!
git push origin <source>:<destination>
일반적으로 이것을 colon refspec이라고 부름!
git fetch 인자들
git fetch origin <place>
커밋을 place 브랜치에서만 내려받고 로컬의 o/foo 브랜치에만 적용
git fetch origin <source>:<destination>
Source가 없다?!
Git은 source 인자를 두 가지 방법으로 이상하게(?????) 사용함!!
이 두 가지 오용은 git push와 git fetch에 source에 없음을 지정할 수 있기 때문에 나타남
인자로 아무것도 안 쓰면 됨!!!
git push origin :side;
git fetch origin :bugFix;
그래서 결국 브랜치 삭제도
인자에 아무것도 쓰지 않는 방식으로 삭제할 수 있음 !!
git fetch origin :bar
로컬에 bar 브랜치 추가
git push origin :foo
가상환경의 foo 삭제
Git pull의 인자들
드디어 마지막..
ㅠㅠ
git pull origin foo;
git fetch origin foo; git merge o/foo;
같은 말임 !!
그리고 또
git pull origin bar:bugFix;
git fetch origin bar:bugFix; git merge bugFix;
이것도 같은 말임 !!!
그냥 pull은 fetch와 merge를 합친 것 !!!!
이제 진짜 끝이 났ㄴㅔ요 .
수고많았습니다.

휴
이젠 또 뭘 해볼까요?
.,,
화이팅
'🍄🟫양송이 Git 스프' 카테고리의 다른 글
| Push&Pull 원격 저장소! (0) | 2026.03.30 |
|---|---|
| 고급 문제 (2) | 2026.03.24 |
| 종합선물세트 (0) | 2026.03.24 |
| 작업을 여기저기로 옮기기 (0) | 2026.03.23 |
| 다음 단계로 (0) | 2026.03.23 |