* Git을 다루는 명령어 : Merge, Conflict, Fork, Pull Request ▼▼▼
① Merge
: 각각의 브랜치에서 작업이 완료된 후에 통합 브랜치(Main)에서 하나로 모아져 합치는 작업(브랜치 끼리합치는 작업)
: 내 Local Repository의 변경사항을 Working Directory에 합치는 작업 (도 merge에 해당)
* Sourcetree에서 Merge를 실행해 보자
ex) main 브랜치에 새로 작업한 feature2 기능을 합칠 경우
1) main 브랜치 check-out 되어 있는지 확인
2) feature2 브랜치 마우스 우 click - ‘Merge feature2 into main’ (= feature2 브랜치를 main 브랜치에 합침)
3) merge 실행 완료
※ 주의!) feature2에 check-out이 된 상태에서 main 브랜치를 우 클릭하여 실행할 경우,
feature2 브랜치에 main 브랜치를 합치는 것이 된다. 따라서 기준이 되는 브랜치를 정한 후, merge를 실행
+ a) merge 할 commit 시점을 가장 최근으로 할 필요 x, commit 할 선택해서 merge 하는 가능
4) Remote Repository에도 반영하기 위해 merge로 인해 발생한 push 작업을 진행
② Conflict
: 같은 파일의 같은 소스코드 부분을 여러 브랜치에서 동시에 수정하고, main이 되는 브랜치에 하나로 합칠 때 생기는 충돌
(따라서 Git 입장에서는 어떤 소스가 우선인지 판단 불가능)
* Sourcetree의 경우 Conflict가 됐을 때
1) ‘충돌 병합’ 경고 알림을 줌 (user에게 충돌된 사항에 대해 해결 등의 선택지를 주는 것)
ex) 충돌이 일어난 index.html 파일에서 변경이 겹친 소스코드 부분을 main 브랜치 코드와 feature2 브랜치 코드 둘 다 보여줌
2) 둘 중 하나를 선택 하거나, 두 코드를 융합해서 전부 지워버리고 새로 작성하는 방법 등을 통해 해결
3) 해결 후에 파일 ‘우 클릭’ > ‘충돌 해결하기’ > ‘해결된 것으로 표시’ 할 경우, 자동으로 Stage에 해결된 파일이 업로드 > 후에 commit > push로 정산 진행
③ Fork
: 다른 사람이 갖고 있는 원격저장소를 내 GitHub 원격 저장소에 복제하는 것
* 언제 사용할까?
- 다른 사람의 오픈 소스를 나한테 맞춰 수정 및 보안, 추가 기능을 넣는 등의 상황에 사용
④ Pull Request
: 내가 무언가 수정을 했을 때, 다른 사람에게 수정한 내 브랜치를 merge 해달라고 요청하는 것
* Pull Request는 댓글처럼 메시지 작성 가능
- 보통 pull 하기 전에 피드백을 주고 받을 수 있으며 어떤 부분을 수정했는지, 피드백 요청 부분 등을 정확하게 기입하는 것이 좋음
'Git & Github' 카테고리의 다른 글
[Git/GitHub] Issues, README.md, Markdown, Type프로그램 (0) | 2023.02.06 |
---|---|
[Git/GitHub] 터미널에서 Git 명령어 사용하기 (0) | 2023.02.06 |
[Git/GitHub] 소스트리(Sourcetree)로 Clone하는 방법 (1) | 2023.01.20 |
[Git/GitHub] 저장소 및 생성 방법 (Local / Remote) (0) | 2023.01.19 |
[Git/GitHub] 기본 동작 원리 (순서 - 선형적 구조) (0) | 2023.01.17 |