logo
게시일

원본 걱정 없이 작업하는 방법 - 내 브랜치 활용하기

다른 언어로 읽기: English
작성자

1. 왜 브랜치가 필요할까요?

같이 쓰는 저장소가 있습니다

팀에서 함께 사용하는 저장소가 있습니다. 문서를 모아놓은 저장소든, 코드가 담긴 저장소든, 여러 사람이 동시에 수정해야 할 때가 있습니다.

이때 모든 사람이 main 브랜치에서 직접 작업하면 어떻게 될까요?

  • 내가 고친 것이 다른 사람 작업을 덮어씌울 수 있습니다
  • 실수한 것이 바로 공식 버전에 반영됩니다

그래서 내 브랜치를 따로 만들어서 작업합니다.

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을 내 브랜치에 머지하면 됩니다

이때 main의 최신 내용을 내 브랜치로 가져와서 합칩니다. 이것을 머지(Merge)라고 합니다.

머지하면 내 작업은 그대로 있으면서, 다른 사람의 최신 작업도 함께 들어옵니다. 두 갈래의 강물이 합쳐지는 것과 같습니다.

이것은 언제든, 몇 번이든 할 수 있습니다. main이 업데이트될 때마다 가져오면 됩니다.

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을 통해 서로 공유됩니다.