본문 바로가기
카테고리 없음

[Git] 브랜치(branch)란? 기본 명령어 확인하기! conflict(충돌)

by lxvxxu 2025. 12. 18.

 

브랜치(branch)란 정확히 뭐냐

한 줄 정의

브랜치 = “같은 프로젝트의 평행 세계”

  • 파일 복사본 ❌
  • 프로젝트 타임라인을 갈라놓은 것 ⏱️

왜 필요하냐 (안 쓰면 생기는 참사)

브랜치 없이 팀플하면

  • A가 코드 수정
  • B가 동시에 수정
  • 누가 덮어썼는지 모름
  • 파일 깨짐
  • 싸움 남

브랜치 쓰면

  • 각자 자기 세계에서 작업
  • 잘 되면 합침
  • 망하면 버림

구조 그림 (머릿속에 이거 그리면 됨)

main ──●──●──●────────
          \
feature-a  ●──●

 

  • main : 제출 / 배포용
  • feature-a : 실험 / 기능 추가용

기본 브랜치 명령어 (필수)

브랜치 목록

git branch

브랜치 생성

 
git branch feature-a

브랜치 이동

git switch feature-a
(옛날 방식)


git checkout feature-a

만들고 바로 이동

git switch -c feature-a

팀플에서의 정석 흐름

  1. main은 건들지 않음
  2. 작업 시작할 때
  3. git switch -c analysis-step3
  4. 작업 + 커밋
  5. 다 끝나면 main으로 합침 (merge)

branch에서 main과 master의 차이는? 그 개념은?

결론부터

  • 기능 차이 없음
  • 이름만 다름

왜 두 개가 있냐?

  • 예전 기본값 → master
  • 요즘 기본값 → main (GitHub 표준)

push vs pull (방향 감각)

핵심 비유

  • push 👉 내 컴퓨터 → GitHub
  • pull 👉 GitHub → 내 컴퓨터

conflict(충돌)란 뭐냐 + 안 죽는 법

conflict가 나는 정확한 조건

같은 파일의 같은 줄을
서로 다른 브랜치에서 수정했을 때


충돌 나면 나오는 공포 화면

<<<<<<< HEAD
내 코드
=======
상대 코드
>>>>>>> feature-a

이게 의미하는 것

  • <<<<<<< HEAD
    현재 브랜치(main)
  • =======
    → 경계선
  • >>>>>>> feature-a
    합치려는 브랜치

 

 

해결 방법 (패닉 금지)

1️⃣ 파일 열기

nano 파일명

 

또는 VS Code

2️⃣ 원하는 코드만 남기고

아래 전부 삭제:

<<<<<<<
=======
>>>>>>>
 

3️⃣ 저장

4️⃣ Git에 알려주기

 
git add 파일명
git commit

→ 끝