- 작성자
1. 왜 브랜치가 필요할까요?
같이 쓰는 저장소가 있습니다
팀에서 함께 사용하는 저장소가 있습니다. 문서를 모아놓은 저장소든, 코드가 담긴 저장소든, 여러 사람이 동시에 수정해야 할 때가 있습니다.
이때 모든 사람이 main 브랜치에서 직접 작업하면 어떻게 될까요?
- 내가 고친 것이 다른 사람 작업을 덮어씌울 수 있습니다
- 실수한 것이 바로 공식 버전에 반영됩니다
그래서 내 브랜치를 따로 만들어서 작업합니다.

핵심 포인트
main에 직접 손대지 않고, 내 브랜치를 만들어서 거기서 작업합니다. 내 브랜치에서 뭘 하든 main에는 영향이 없습니다.
2. 내 브랜치 = 내 세상
main에서 갈라진 나만의 공간
브랜치를 만든다는 것은, main의 현재 상태에서 내 세상을 하나 만드는 것입니다.
만드는 순간의 main과 똑같은 상태에서 시작합니다. 거기서부터는 내 마음대로 수정해도 됩니다. main에는 아무 영향이 없습니다.
내 방을 생각하면 됩니다. 거실(main)은 모두가 쓰는 공간이라 함부로 바꾸면 안 되지만, 내 방(내 브랜치)에서는 마음대로 꾸미고, 바꾸고, 엎어도 아무 상관없습니다.

핵심 포인트
내 브랜치는 나만의 세상입니다. 여기서 무슨 짓을 해도 main은 안전합니다.
3. 내 브랜치에서 마음껏 작업하기
고치고, 커밋하고, 푸시하고 — 계속 반복
내 브랜치에서는 부담 없이 작업하면 됩니다. 파일을 고치고, 커밋하고, 푸시하는 것을 몇 번이든 반복할 수 있습니다.
한 번에 완벽하게 만들 필요가 없습니다. 중간 중간 계속 푸시해도 됩니다.
고치고 → 커밋 → 푸시
고치고 → 커밋 → 푸시
고치고 → 커밋 → 푸시
...계속 반복해도 됩니다
예를 들어 문서를 작성한다면:
- 첫 번째 푸시: "일단 뼈대만 만들었습니다"
- 두 번째 푸시: "1장 내용을 추가했습니다"
- 세 번째 푸시: "이미지를 넣었습니다"
- 네 번째 푸시: "오타를 고쳤습니다"
이 모든 과정이 내 브랜치에서만 일어나기 때문에, main에는 아무 영향이 없습니다.

핵심 포인트
내 브랜치에서는 몇 번이든 고치고 푸시해도 됩니다. main에는 아무 영향이 없으니 부담 없이 작업합니다.
4. main의 최신 내용을 내 세상으로 가져오기
내가 작업하는 동안 main도 변합니다
내가 브랜치에서 작업하는 동안, 다른 사람도 각자 브랜치에서 작업을 끝내고 main에 합칩니다.
예를 들어:
- 내가
docs/나의-폴더/에서 "온보딩 가이드"를 쓰는 동안 - 영희가
docs/영희-폴더/에 "API 문서"를 완성해서 main에 합쳤습니다
이 시점에서 main에는 영희의 최신 문서가 있지만, 내 브랜치에는 아직 없습니다.

main을 내 브랜치에 머지하면 됩니다
이때 main의 최신 내용을 내 브랜치로 가져와서 합칩니다. 이것을 머지(Merge)라고 합니다.
머지하면 내 작업은 그대로 있으면서, 다른 사람의 최신 작업도 함께 들어옵니다. 두 갈래의 강물이 합쳐지는 것과 같습니다.
이것은 언제든, 몇 번이든 할 수 있습니다. main이 업데이트될 때마다 가져오면 됩니다.

핵심 포인트
main의 최신 내용을 내 브랜치로 가져와서 합칠 수 있습니다. 합치고 나면 내 브랜치에 모든 최신 내용 + 내 작업이 함께 있습니다.
5. 내 폴더에서 작업하면 충돌이 없습니다
왜 충돌이 생길까요?
머지할 때, 두 사람이 같은 파일의 같은 부분을 다르게 수정했으면 Git이 "둘 중 어느 쪽을 쓸까요?" 하고 물어봅니다. 이것을 충돌(Conflict)이라고 합니다.
하지만 충돌은 같은 파일을 동시에 건드렸을 때만 발생합니다.
각자 자기 폴더에서 작업하면?
만약 이렇게 작업한다면:
docs/
├── 철수-폴더/ ← 철수가 여기서 작업
│ └── 온보딩-가이드.md
├── 영희-폴더/ ← 영희가 여기서 작업
│ └── API-문서.md
└── 민수-폴더/ ← 민수가 여기서 작업
└── 디자인-가이드.md
각자 자기 폴더 안에서만 작업하니까, 서로 같은 파일을 건드릴 일이 없습니다. 충돌이 발생할 수가 없습니다.
이 상태에서 main을 내 브랜치에 머지하면 어떻게 될까요?

내 세상에 모든 것이 합쳐집니다
각자 다른 폴더에서 작업했기 때문에, main을 내 브랜치에 머지하면 아무 문제 없이 자연스럽게 합쳐집니다.
머지 후 내 브랜치의 모습:
docs/
├── 철수-폴더/
│ └── 온보딩-가이드.md ← 내가 쓴 것 ✅
├── 영희-폴더/
│ └── API-문서.md ← main에서 가져온 것 ✅
└── 민수-폴더/
└── 디자인-가이드.md ← main에서 가져온 것 ✅
내 작업도 있고, 다른 사람의 최신 작업도 있습니다. 내 브랜치 하나에 모든 최신 내용이 모여 있습니다.
이것이 브랜치와 머지의 핵심입니다. 내 세상에서 마음껏 작업하면서도, 항상 팀의 최신 내용을 함께 가져갈 수 있습니다.

핵심 포인트
각자 자기 폴더에서만 작업하면, 파일이 겹칠 일이 없습니다. 겹치는 것이 없으니 머지하면 자연스럽게 합쳐집니다. 결과: 내 세상(브랜치)에 최신 내용 전부 + 내 작업이 함께 있습니다.
6. 작업이 끝나면
작업이 끝나면 Pull Request(PR)를 만들어서 main에 합치기를 요청합니다. 팀원이 확인하고 승인하면 내 작업이 main에 반영됩니다.
PR이 합쳐지면, 다른 사람들도 main을 통해 내 작업을 받아갈 수 있습니다. 그 사람들이 main을 자기 브랜치에 머지하면, 내가 만든 문서가 그 사람의 브랜치에도 들어갑니다.
이렇게 모든 사람의 작업이 main을 통해 서로 공유됩니다.