야곰아카데미에서 그룹 프로젝트를 하다가 야곰아카데미 repository의 브랜치에 우리가 작업한 브랜치를 머지하기위해 PR을 보냈지만 충돌이 일어났다.
구체적인 상황은 아래와 같다.
yagom-academy:4-hwangjeha
에는 지난 주에 작업한 허황의 개인 프로젝트가 머지되어있는 상황hwangjeha:4-najahwang-group
브랜치를 생성하여 모둠원들의 코드를 합쳐서 커밋을 했고, yagom-academy:4-hwangjeha
에 머지를 하기위해 PR.4-najahwang-group
브랜치는 야곰 레포 원본을 분기해서 만듦4-najahwang-group
브랜치에 계산기 프로젝트 코드 병합 후 야곰 레포의 4-hwangjeha
브랜치에 PR 요청야곰 레포의 4-hwangjeha
의 커밋보다 허황 레포의 4-najahwang-group
커밋이 한참 뒤쳐져있어서 충돌이 일어난듯하다.
따라서, 허황 레포에서 개인 프로젝트한 4-hwangjeha
브랜치와 모둠 프로젝트한 4-najahwang-group
브랜치 간의 충돌을 해결하고
다시 야곰의 4-hwangjeha
브랜치에 PR해서 상황을 해결함
git checkout -b hwangjeha-4-najahwang-group 4-hwangjeha
git pull [https://github.com/hwangjeha/ios-calculator-app.git](https://github.com/hwangjeha/ios-calculator-app.git) 4-najahwang-group
hwangjeha-4-najahwang-group
)를 만드는 동시에 4-hwangjeha
를 가져와서,4-najahwang-group
를 풀 받는다. (일부러 충돌을 냄)hwangjeha-4-najahwang-group
에 커밋4-najahwang
에 푸시소스트리에서 상황을 해결하려했지만,
Merge branch '4-najahwang-group' of https://github.com/hwangjeha/ios-calculator-app into hwangjeha-4-najahwang-group
# Conflicts:
# Calculator/Calculator.xcodeproj/project.pbxproj
# Calculator/Calculator/Base.lproj/Main.storyboard
# Calculator/Calculator/Extension/Double+Extension.swift
# Calculator/Calculator/Extension/String+Extension.swift
# Calculator/Calculator/Model/CalculatorItemQueue.swift
# Calculator/Calculator/Model/ExpressionParser.swift
# Calculator/Calculator/Model/Formula.swift
# Calculator/Calculator/Model/Operator.swift
# Calculator/Calculator/ViewController.swift
충돌난 모든 파일에서 우클릭하여 파인더에서보기 → 엑스코드창을 켜서 head ~ === 부분을 일일이 삭제함
로컬의 hwangjeha-4-najahwang-group
에 변경사항을 커밋함
그리고 푸시할려고하니 안돼서 소스트리 설정에서 깃허브 토큰추가함
원격(허황레포)의 4-najahwang 브랜치에 푸시함
야곰 레포의 4-hwangjeha에 PR도 성공
※ 새로운 브랜치를 만드는 동시에 **원격에 있는 branch**를 가져오려면 아래 명령어를 사용합니다.
[특정이름 지정시]
$ git checkout -b work2 **origin**/work2
git checkout -b hwangjeha-4-najahwang-group 4-hwangjeha
// 허황의 개인 프로젝트 브랜치를 로컬의 새로운 브랜치(hwangjeha-4-najahwang-group)로 복사해옴
// (현재 야곰아카데미 4-hwangjeha 브랜치와 같은 내용, 같은 헤드)
git pull [https://github.com/hwangjeha/ios-calculator-app.git](https://github.com/hwangjeha/ios-calculator-app.git) 4-najahwang-group
// 모둠 프로젝트를 pull하여 병합 시도 -> 강제로 충돌을 일으킴.
//텍스트 에디터로 모든 파일의 충돌을 해결한 후 머지 커밋을 남기고,
//(현재 야곰 4-hwangjeha의 커밋보다 하나 더 커밋한 상태)
//문제의 4-najahwang-group 원격 브랜치에 push하면 충돌이 해결되고
//야곰 4-hwangjeha보다도 헤드가 더 앞섰으니 덮어씌울 수 있게 된다.
이 상황을 그린 그림 (출처: 허황)
PR과 머지는 헤드를 맞춘상태에서 진행해야함
우리는 허황레포에서 4-najahwang 브랜치를 만든 후 야곰 main을 클론해왔음 ,,
그리고 야곰레포의 허황브랜치(이미 커밋이 쌓인곳)에 머지시도
→ 이러면 안된다 (커밋로그가 맞지않음)
허황 4-hwang 을 기반으로 새로운 브랜치를 하나파서