GIT

GIT (Branch & Merge)

jki09871 2024. 7. 17. 13:23

1. Branch란?

● 코드의 독립적인 작업을 위해 서로 다른 작업 공간을 만드는 것이다.

● 각 브랜치는 특정 기능이나 버그 수정을 위한 별도의 경로를 제공한다.

● 여러 개발자가 동시에 작업할 수 있도록 도와준다.

 

 

장점

 브랜치를 사용하면 메인 코드에 영향을 주지 않고 실험하거나 개발할 수 있다.

작업이 완료되면 브랜치를 병합(merge)하여 변경 사항을 메인 브랜치에 통합할 수 있다.

 

2. Branch 생성 방법

2-1생성 명령어

git branch <브랜치이름>

 

2-2 예를 들어, test라는 브랜치를 생성하고 싶다면

git branch test

 

2-3 생성한 브랜치로 이동하려면 다음 명령어를 사용

git checkout test
2-4 브랜치를 생성하고 바로 이동하려면 다음과 같이 사용
git checkout -b test

 

3. 수정 & 개발 후 브랜치에 올리기

3-1 Add: 변경된 파일을 스테이징 영역에 추가.

add . (모든 파일 저장)
add <파일 이름> (특정 파일만 저장)

 

3-2 Commit: 변경 사항을 커밋.

git commit -m "메세지 입력"

 

3-3 Push: 로컬 브랜치의 변경 사항을 원격 브랜치에 푸시.

git push origin <브랜치 이름>

 

4. Pull Request 새성 및 작성

  Pull Request (PR)**는 코드 변경 사항을 다른 사람에게 검토받고 통합 요청하는 과정이다.

 

4-1 밑에 동그라미 그려진 곳에서 자신에 브랜치로 이동해야 함)

 

4-2 자신에 브랜치로 이동하면 pull request 버튼이 활성화 되어 있다.

 

4-3 버튼 클릭 후 작성

 

5. Merge란?

● Git에서 두 개의 브랜치를 하나로 통합하는 과정이다.

주로 작업한 브랜치의 변경 사항을 메인 브랜치(예: main 또는 master)에 통합할 때 사용된다.

머지를 통해 서로 다른 개발자들이 작업한 내용이나 기능을 결합할 수 있다.

 

6. Merge 과정

6-1브랜치 전환: 통합할 브랜치로 이동

git checkout main

 

6-2 Merge 명령 실행: 병합할 브랜치를 지정하여 merge

git merge <병합할 브랜치 이름>

 

6-3 충돌 발생 과정

 

A라는 개발자가 test.txt라는 파일 첫번째 줄에 hello 라고 입력 후 push했다.

test.txt
hello

 

B라는 개발자도 test.txt라는 파일 첫번째 줄에 hi라고 입력 후 push했다.

test.txt
hi

 

개발자 B가 main에 병합하려고 하면 충돌이 발생한다.

CONFLICT (content): Merge conflict in test.txt

 

 

'test.txt' 파일을 열어보면 다음과 같이 내용이 표시되어있다.

<<<<<<< HEAD
hello
=======
hi
>>>>>>> feature-B

 

이 부분을 수동으로 수정한 후, 예를 들어 다음과 같이 변경할 수 있다

hello hi (<<< === >>>> 지우면 된고 필요한 코드만 남기면 된다)

 

7. 최종 커밋

7-1수정 후, 파일을 추가하고 커밋

git add hello.txt
git commit -m "메세지 입력"

 

 

이렇게 하면 충돌이 해결되고 두 브랜치의 변경 사항이 통합된다.

 

8. 브랜치 삭제

8-1 브랜치 삭제 코드

git branch -d <브랜치이름>

 

8-2 강제 삭제 (병합되지 않은 브랜치): 만약 브랜치가 병합되지 않았다면, 강제로 삭제할 수 있다.

git branch -D <브랜치이름>

 

9. 원격 브랜치 삭제

9-1 원격 브랜치 삭제 코드

git push origin --delete <브랜치이름>

이렇게 하면 로컬과 원격의 브랜치가 모두 삭제된다.