화요일 학습 시작
깃 브랜치 이름 규칙
"메인 브랜치"
ex) v1.2.0
- 기능 개발 : feature/login, feature/select-product
- 출시 준비 : release-1.3, release-1.4
- 긴급 수정 : hotfix-v1.2.1
브랜치가 메인 나뭇가지에서 복사해서 다른 나뭇가지를 만들고


브랜치를 추가하거나 변경하고 삭제하는 과정
커밋을 할때 까지는 복사가 실행된것이 아니다.
브랜치를 브랜치 답게 사용하는 것은 커밋부터이다.


병렬 개발을 할수 있는 실습
연습이 필요하다
깃 목록 확인
내가 지금 어느 브랜치에 있는지
브랜치 추가하는 방법
브랜치 이동하는 방법
주의할점 commit을 치기 전까지는 절대 절대 내가 지금 어느 브랜치에 있는지 확인해야한다
만약.. 내가 브랜치에 있는 곳을 착각하고 잘못 커밋을 하거나 하면..
나의 노력이 날아가거나 코드가 날아가거나..
깃허브 브랜치 실습
git branch -r
// 리모티에 있는걸 확인하다고 해서 하이픈 R
명령어를 실행하면 "내가 원격에 연결되어있는 깃허브 레파지토리에 어떤 브랜치 있나 보고 왔는데 오리진이라고 하는 너가 별칭 지어논 거기에 메인이라는 브랜치가 있더라" 하고 친절하게 알려준다.


commit cdae22b21c9a77cd4a972e297744336f107e8ae8 ( origin/main, main, feature/select-product )
// 이 commit은 origin main이 여기까지 되어있구, 깃의 main branch도 여기까지 되어있고, feature/select-product도 여기까지 되어있어 라고 git log를 보면 알수 있다.
Login Branch Commit 이라는 커밋 메시지는
feature/login에만 적혀있다

이 커밋 메시지를
이 브랜치 로그인인데 여기(깃)에서만 관리할것이 아니라 깃허브에도 올리고 싶다
즉 무엇이 하고 싶은거냐면
지금 이 로그인 브랜치 커밋이라는 저 커밋 메시지가
feature/login뿐만 아니라 origin 밑에 로그인 또는 / origin 밑에 feature/login 으로 들어갔으면 좋겠는것이다.
깃허브에 브랜치 생성하고 깃 브랜치 복제하기
깃에 만들어둔 브랜치를 원격 브랜치로 복제
git push 깃허브저장소별칭 깃브랜치
// 깃허브저장소에다가 깃브랜치를 가져다 올린다는 표현이다.
// 반대로. 깃허브에 브랜치를 먼저 생성하고 깃으로 받아오려면 깃브랜치명과 깃허브브랜치명을 바꿔서 작성하면 됩니다.


깃허브에 브랜치도 올려보았다.
이제 남는것을 하나로 합치는 일만 남았다.(병합)
깃 브랜치 전략
깃 브랜치 전략이란?
깃 플로우라고도 부릅니다.
전략은 다양하게 짤 수 있습니다.
크게 2가지 분류
fast-forward 전략
main branch에서 feature/login branch를 생성한 시점부터,
A branch에서 B branch를 생성한 시점부터
- A branch 에는 아무런 추가 구현을 하지 않고
- B branch만 추가 구현 한 뒤
B branch 와 A branch를 합치면 >> A branch에 그냥 B branch가 붙으면 끝남

3 - way 전략 (+ fast-forward)
일반적으로 가장 많이 사용하는 전략
main branch에서 feature/login branch를 생성한 시점부터,
A branch에서 B branch를 생성한 시점부터,
- A branch도 추가 구현을 하고
- B branch도 추가 구현을 하고
B branch와 A branch를 합치면 >> A branch와 B branch가 서로 비교하여 바뀐 것을 정리하여 합치는 전략


병합과 충돌


open a pull request = pr
메인 브런치 입장에서 병합을 해주는 입장에서 당겨주는걸 요청한다.
메인을 향해서 픽쳐/로그인을 컴페어 해서 확인을 한다.
자동으로 할수 있을것 같아
충돌이 없을것 같아
병합당하면 안될까 하고 이야기 하고 있는 모습을 확인 할 수 있다.


pr 에다가 어떤 내용을 남겨야 하느냐
브랜치를 병합을 할떄 pr 을 사용하게 되는데
내가 브랜치에 뭘 구현을 했는지 작성하는게 좋다.
ex) 로그인 구현, 암호화, 등

마크다운 적용 가능!! pr ㄱㄱ

edit (수정) 가능

커밋한 브랜치 캐역과
합병 함에 있어 에러사항이 없다는것을 확인

이것도 커밋이다

성공적으로 병합이 되고 브랜치를 삭제 할 것인지 묻는 내용
필요없으니 Delete
다시 Repo로 돌아가보면

메인 브랜치 하나만이 남아 있는 것을 확인

커밋 이력에서도 확인 가능
병합이란,
- 브랜치를 생성한다는 건, "협업"을 위한 것
- 그래서 우리는 주로 브랜치 병합 (추가 가지 => base 가지) 을 "깃허브"
-main 브랜치 보호
- 추가 브랜치를 main 브랜치 방향으로 병합 시켜줘 = Pull Request
- 충돌 일어나나? 깃허브가 자동으로 확인을 해줌!
*PR 메시지* 신경쓰기
- merge
* merge commit *
- branch 삭제
자 깃에서는 병합에 성공했다. 이제는 개발환경인 vscode에 돌아가 보자


깃에서 삭제된줄 모르고 에러가 뜨는 모습
이럴때는 로그를 찍어보자

merge 한 내용이 없는 것을 확인
동기화를 시켜줘야 한다

동기화 시켜준 다음 로그를 다시 한번 찍어보자


이제 삭제가 성공적으로 이루어진것을 확인 할 수 있었다.
< merge된 깃 허브 - 깃 동기회>
git fetch -p : 깃 허브 브랜치 목록 동기화
>> (깃 브랜치 삭제) git checkout main >> git pull origin main >> git branch -d feature/login
충돌 해결하기
우선 new windows 로 다른 사람과 협업하는 환경을 임시임시로 구축해보자

업데이트가 전혀 안되어있다 이것부터 해결하고 시작
git pull origin main


create branch feature/1 from main
메인에 없는데 만들어 줄까? 하는 모습

일단 충돌 실험을 위해서 왼쪽에서는 test.txt 파일 내용을 feature1 로 오른쪽에서는 feature2 로 작성해서 커밋을 해주었다,










너지금 modefied 를 바꾼게 아닌데? 확인해보고 맞으면 바꿔줄 수 있어 어떻게?

mark a resolved



'pgms' 카테고리의 다른 글
| [1주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 6 (0) | 2026.01.08 |
|---|---|
| [1주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 5 (5) | 2026.01.07 |
| [1주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 3 (0) | 2026.01.05 |
| [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 2 (0) | 2025.12.31 |
| [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 (1) | 2025.12.30 |