[내일배움캠프 Spring_3기] Github 실습

jiiim_ni·2026년 1월 7일

오늘은 어제 진행한 필수 과제를 이어서 하고 도전 과제까지 진행했다.

어제 진행한 내용: 나만의 작업 공간 만들기(Branch 생성), PR(Pull Request), Code Review & Merge


Branch 생성

git switch -c feature/jimin # 브랜치 생성 + 이동
git branch feature/jimin # 브랜치 생성(이동X)
  • 원격 저장소에 브랜치 올리기
    git push -u origin feature/jimin

    *-u 덕분에 이후엔 그냥 git push만 써도 됨


PR


Code Review & Merge


(튜터님께서 approve 도 사용해보라고 하셔서 사용해보았다.)


공통 파일 수정하고 충돌 경험하기

HTML 구조 변경 충돌 시나리오
<상황>

  • 개발자 A: 팀 제목 텍스트 변경
  • 개발자 B(나): 같은 영역에 아이콘 추가

사진에서 가운데가 개발자 A
사진에서 오른쪽이 개발자 B

충돌 발생하였고 우리는 Github 내에서 해결하였다.
최종 해결된 버전(사진에서 왼쪽)

Github에서 해결하는 방법

1) PR 페이지에서 Resolve conflicts 버튼 클릭
2) index.html 충돌 표시(<<<<<<, ======, >>>>>>)를 정리
3) Mark as resolved
4) Commit merge
5) PR이 다시 Able to merge로 바뀜 -> Merge

로컬(IntelliJ/터미널)에서 해결

  • main 최신 받기 -> 내 브랜치에서 main 머지 -> 충돌 해결 -> 커밋/푸시
git switch main
git pull origin main

git switch hotfix/jimin #임의로 내가 설정한 브랜치명
git merge main # 여기서 충돌 나면 파일 열어서 해결

git add index.html
git commit -m "시나리오3: 충돌 해결 완료"
git push
  • 다시 PR 페이지 보면 충돌 해결되어 Merge 가능

  • 내가 맡은 시나리오3은 github에서 해결했지만 시나리오2를 맡으신 팀원분은 로컬에서 해결하였다. 이 과정에서 팀원분을 도와주면서 내 실력도 늘게 된 것 같다.


rebase 직접 해보기

1)

git switch feature/jimin

2) main 최신 내역 가져오기(fetch)

git fetch origin

fetch는 원격 상태를 로컬에 업데이트만 하고 내 코드에 합치진 않음

3) rebase 실행

git rebase origin/main

3-1) 충돌 없이 끝났을 경우

git push --force-with-lease origin feature/jimin
  • rebase는 커밋 해시가 바뀌어서, 그냥 push가 안 될 확률이 큼. 그래서 안전한 강제푸시 옵션 사용
  • --force-with-lease는 내가 마지막으로 본 원격 상태랑 다르면 막아줘.라서 --force보다 안전함

3-2) 충돌 발생했을 경우(git이 멈추고 conflict 뜸)

3-2.1) 충돌 파일 확인

git status 

3-2.2) 충돌 파일 열고 해결

  • IntelliJ: Git 창/충돌 파일 클릭 -> Merge 툴로 해결
    (또는 파일 열어서 <<<<<<<, =======, >>>>>>> 정리)

3-2.3) 해결한 파일 add

git add . #또는 특정 파일만 git add 파일명

3-2.4) rebase 계속

git rebase --continue
  • 만약 충돌이 또 나면 위 과정을 status -> 해결 -> add -> continue 반복
  • rebase 시작 전 상태로 돌아가기
git rebase --abort

4) 잘 됐는지 확인

git log --oneline --decorate --graph -15
  • 내 커밋들이 origin/main 위에 올라가 있으면 성공


Squash로 커밋 합치기


커밋 실수!(commit --amend로 수정하기)

0개의 댓글