1 분 소요

참조

https://learn.microsoft.com/ko-kr/azure/devops/repos/git/gitworkflow?view=azure-devops

  1. git 충돌관리 https://www.freecodecamp.org/korean/news/how-to-resolve-merge-conflicts-in-git/
  • 기본 명령어 3개만 기억: git add, git commit, git push

  • 해당 명령어도 github Desktop GUI 를 통해 실행 가능

  • 다만 git 쓰기가 무서운 이유는 충돌을 관리를 어떻게 해야할지 몰라서 이 글을 쓰면서 테스트 하고 있다.

용어 정리

Staging : git 에서 Stagin 이란 커밋하기전 변경된 파일 임시로 저장하는 공간

  • git add 명령으로 변경된 파일을 올려두는 공간

버젼관리하는법 테스트

샘플 코드 위치

https://github.com/Leejeunghun/GIT_PRATICE

상황별 반응

  1. 원격에서 파일을 수정 하고 로컬에서 다시 수정 한경우

결과 : 동기화 화면이 나옴

1번 결과

해당 결과 스테이징하면 충돌이 확실히 보임 alt text

충돌 난 부분 수정하고 스테이징 하면 업로드가 됨

<<<<< 
내가 로컬에서 수정한 부분
=====
원격에서 충돌난 부분
>>>>>

alt text

해당 식으로 진행하면 git 충돌은 1차원적인 경우 해결이 가능하다.

  1. 로컬에서 만든 파일과 원격에서 만든 파일 충돌 관리 하는 경우 어떻게 될까

결과 : 충돌 없이 진행이 잘된다.

  1. Branch 만들고 다시 합치는데 어떻게 기존 메인 브랜치가 변경되면 어떻게 될까 ?

결과 : 좋은 포인트 짚으셨어요 👍 🧩 상황 정리

  • 메인 브랜치(main)에서 새로운 브랜치(feature)를 만듦
  • feature 브랜치에서 작업을 진행
  • 그 사이에 메인 브랜치가 다른 커밋으로 변경됨 (예: 팀원이 새로운 기능을 추가)
  • 이제 feature 브랜치를 다시 main에 합치려고 함

🔄 결과: 병합 시나리오

  • Fast-forward merge (빠른 병합)
  • 메인 브랜치가 변경되지 않았다면, 단순히 포인터만 옮겨서 합쳐짐.
  • 하지만 지금은 메인 브랜치가 이미 변경됐으므로 fast-forward 불가능.
  • Three-way merge (3방향 병합)
  • Git은 공통 조상(commit), 메인 브랜치 최신 상태, feature 브랜치 최신 상태를 비교해서 자동으로 병합.
  • 대부분 자동으로 합쳐지지만, 같은 파일의 같은 부분을 수정했다면 conflict(충돌) 발생.

⚠️ 충돌(conflict) 발생 시

  • Git이 자동으로 합칠 수 없는 부분은 충돌 표시(«««<, =======, »»»>)를 남김
  • 개발자가 직접 어떤 변경을 반영할지 선택해야 함
  • 충돌 해결 후 다시 git add → git commit 하면 병합 완료

태그:

카테고리:

업데이트:

댓글남기기