IT'S DO
Published 2025. 9. 8. 10:03
[git] 복습 & sourceTree 형상관리/git
728x90

# 브랜치 만드는 이유
1. 새로운 기능이나 수정 작업을 master에서 바로 하면, 작업 도중에 에러가 발생해 빌드가 깨지거나 배포가 가능한 상태에 무너짐.
그래서 dandy라는 브랜치를 따서 거기서 마음껏 작업 후 -> 검증 후 master에 병합하는 구조를 씀.
각자 독립적으로 개발하다가, 테스트 후에만 master로 합침.


2. branch랑 sourceTree 연동 테스트, commit, push 하면 sourceTree에 반영됨.

3. branch 소스를 master에 반영 하고 싶으면, master로 체크아웃 후 병합 진행한 다음에, 푸쉬 까지 진행 되어야 반영됨.

 

# branch 충돌 테스트
4. 충돌 났을때 화살표 의미 

X를 누르면 적용 안하겠다는 의미, >>를 누르면 해당 부분을 적용, 오른쪽에 있는 것도 마찬가지고 <<를 누르면 해당 부분으로 적용하겠다는 의미. 둘다 안쓰고 중앙에 내가 따로 소스를 적어서 적용 해도 됨.

 

# git 분기 그래프

5. 각 분기의 의미

5. 1. 일반적인 분기/병합 (그래프가 Y자 모양)

  • 보통은 master에서 갈라져 나온 dandy가 커밋을 쌓으면, 두 브랜치 포인터가 다른 커밋을 가리키게 됩니다.
  • 이후 master로 병합할 때 merge commit을 생성하면 그래프가 분기되고 다시 합쳐진 모양(Y자)이 됩니다.

즉 master의 commit 부분과 branch의 commit 부분 시점이 동일한 곳에서 나눠져 있을때 분기가 됨.

 

5. 2. 지금처럼 직선(일자)으로 보이는 경우

  • 현재 master와 dandy는 서로 다른 시점에서 동시에 작업한 게 아니라, 이어진 연속선상에서만 작업

ex) master에서 dandy라는 branch를 만들고 dandy에서만 커밋 하거나, master에서만 커밋 진행 했을 때 직선 모양이 생김. 그게 아니라 위 처럼 각 master와 branch에서 commit 진행 시에 분기가 됨.

 

 

# 커밋 되돌리기 테스트

6. revert라는 branch 만듬, revert 체크아웃 후 해당 소스에 revert test를 반영 후 commit 진행

 

그후에 revert에서 커밋 되돌리기 진행. 

 

그럼 아래 처럼 사진 2개가 나옴.

1
2

 

 

 

1번 사진에 해결 또는 병합 눌렀을 시 아래 처럼 나타남.


적용할거 적용 한다음 해결하면 끝.

 

1️⃣ 만약 잘못된 커밋이 이미 master에 들어갔다면? (협업에서)

  • 팀에서 공유되는 브랜치(master, develop 등)에서 직접 **커밋 되돌리기(revert)**를 실행합니다.
  • 즉, master로 체크아웃 → 문제 커밋 선택 → 커밋 되돌리기
  • 그러면 master에 “되돌림 커밋”이 추가돼서 모두에게 반영됩니다.

협업에서는 보통 이 방법을 씁니다.
(다른 사람이 이미 pull 한 기록을 없애지 않기 위해 reset이 아니라 revert를 쓰는 거예요)

 


2️⃣ 실험용/개인 브랜치에서만 잘못됐다면? (local에서)

  • 지금처럼 revert라는 별도 브랜치를 만들어서 거기서 커밋 되돌리기를 해도 상관없습니다.
  • 하지만 그 경우에는 결국 그 되돌림 브랜치를 master에 병합(merge) 해야 master에도 반영됩니다.
  • 즉, revert 브랜치에서만 되돌리면 master에는 아무 영향이 없어요.

 

  1. 패치(fetch/pull)
    • 원격 저장소(remote)에 다른 사람이 올려둔 변경사항을 먼저 가져와서
      내 로컬 브랜치와 동기화하는 과정.
    • fetch는 가져오기만 하고, pull은 가져온 뒤 자동으로 merge까지 합니다.
    • 소스트리에서는 "패치/풀" 버튼으로 가능.
  2. 작업 & 커밋(commit)
    • 로컬에서 코드 수정 → 스테이징 → 커밋.
  3. 푸쉬(push)
    • 로컬의 최신 커밋을 원격 저장소에 올림.

🚨 주의할 점은 딱 하나예요:

  • 패치(=fetch/pull)를 꼭 먼저 하고 푸쉬(push) 해야 충돌(conflict) 위험이 줄어요.
  • 원격 브랜치에 내가 모르는 새로운 커밋이 있으면, 그걸 반영하지 않고 바로 푸쉬하면 에러(rejected)가 납니다.
profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!