Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

wintertreey 님의 블로그

팀플 작업시 깃 충돌 문제 본문

Git & GitHub

팀플 작업시 깃 충돌 문제

wintertreey 2024. 8. 22. 19:58

요점 : 무조건 작업물 백업해두고 깃배시 작업하기. 

 

예시 브랜치 명 

  • 메인 브랜치 (main): 배포 가능한 안정된 상태를 유지합니다.
  • 개발 브랜치 (develop): 모든 팀원의 작업이 통합되는 브랜치입니다.
  • 개인 브랜치 (apple, bana, cat, 등): 각 팀원이 독립적으로 작업하는 브랜치입니다.

 

작업 흐름

1. 개인 브랜치에서 작업하기

git checkout apple

 

작업 후 커밋

git add .

git commit -m "작업내용설명"

 

원격저장소에 푸시하기

git push origin apple

 


 

2. develop 브랜치에 통합된 결과물 받기

개인 브랜치 (apple)에서 작업을 완료하고, 해당 브랜치의 작업 내용을 커밋하고 원격 저장소에 푸시한 상태입니다.

이 시점에서 apple 브랜치의 로컬 저장소와 원격 저장소 모두에 작업 내용이 반영되어 있습니다.

 

현재 develop 브랜치의 최신 변경 사항을 apple 브랜치에 통합하고 싶습니다.

이 과정에서 apple 브랜치의 현재 작업 내용은 유지되며, develop 브랜치의 최신 사항이 추가되어야 합니다.

 

 

로컬 저장소의 develop 브랜치를 최신 상태로 업데이트

git checkout develop

git pull origin develop

 

개인브랜치 apple로 돌아가기

git checkout apple

 

develop브랜치의 최신변경사항을 apple 브랜치에 병합

apple 브랜치에서 develop 브랜치의 최신 변경 사항을 병합합니다. 이 과정에서 충돌이 발생할 수 있으며, 충돌을 해결하고 커밋을 해야 할 수도 있습니다.

git merge develop

 

만약 충돌이 발생하면, 충돌을 해결한 후에 변경 사항을 커밋

# 충돌이 있는 파일을 열어 수동으로 해결

git add <해결된 파일>

git commit -m " 병합충돌해결 "

 

변경사항을 원격저장소 apple브랜치에 푸쉬

git push origin apple


저 충돌해결이라는 것은 과연 어떻게 진행되는것일까?

+ 충돌해결과정 

 

충돌 발생 확인:

  • git merge develop 명령어를 실행했을 때 충돌이 발생하면, Git은 충돌이 발생한 파일에 대해 알림을 주고 병합이 중단됩니다. 충돌이 발생한 파일은 unmerged 상태로 표시됩니다

충돌 파일 확인:

git status

 

충돌 해결:

  • 충돌이 발생한 파일을 열면, 충돌 부분이 다음과 같은 형태로 표시됩니다.

<<<<<<< HEAD

// 현재 브랜치에서의 변경 내용

=======

// `develop` 브랜치에서의 변경 내용

>>>>>>> develop

 

<<<<<<< HEAD와 >>>>>>> develop 사이에 있는 부분이 충돌 부분입니다. 이 사이에 있는 코드가 두 브랜치에서 변경된 부분입니다. 이 부분을 적절히 수정하여 원하는 상태로 만들어야 합니다.

 

  •  충돌 해결 예제:

<<<<<<< HEAD

const greeting = "Hello from the apple branch!";

======= const greeting = "Hello from the develop branch!";

>>>>>>> develop

 

이 경우, 두 변경 사항을 통합할 수 있습니다:

const greeting = "Hello from both branches!";

 

 

충돌 해결 후 파일 수정 및 저장:

  • 충돌을 해결한 후, 파일을 저장하고 닫습니다.

해결된 파일 추가:

  • 충돌을 해결한 파일을 git add 명령어를 사용하여 스테이징합니다. 해결파일명이 index.html이라 가정.

git add index.html 

 

충돌 해결 커밋:

충돌을 해결하고 스테이징한 파일을 커밋합니다. 이 커밋은 충돌 해결을 기록합니다.

 

git commit -m "충돌 해결 및 develop 브랜치 병합"

 

 


3. develop 브랜치에 최종 통합하기

팀 프로젝트시 혹시모를 일을 막고자, 깃허브 홈페이지에서 develop에 merge, pull request 하기로 함.

하단은 참고용으로 기록.

 

팀 프로젝트의 각 개인 브랜치에서 작업이 완료되면, develop 브랜치에 변경 사항을 통합합니다

 

git checkout develop

 

develop브랜치에 개인 브랜치 변경사항 병합하기

git merge apple

git merge bana

git merge cider

 

병합결과를 develop브랜치에 푸쉬하기

git push origin develop

 

 


 

'Git & GitHub' 카테고리의 다른 글

Git 개념 및 구조  (0) 2024.08.16
팀 프로젝트 깃 브랜치 연결, 작업물 pull&push  (2) 2024.08.13
VS Code에서 깃 연동하기  (0) 2024.07.31
GitBash fatal: unable to access 에러  (0) 2024.07.29