[CS 1-2 | 프로그램 설계 방법론] Github에서 충돌났을 때 해결법

2022. 12. 9. 02:44·CS 대학강의
728x90
반응형

Github Conflict 해결 - main 브랜치와의 merge 중

원격 저장소의 main 브랜치에서 추가 브랜치를 파서 소스코드를 push하려던 찰나에
Git 명령프롬토콜이 리모트에 없는 사항 (커밋내역) 이 있기에 업데이트가 거부되었다고 한다.

(소스코드 상 충돌이 나서, Github에 올릴 수 없다고 에러가 발생했다.)

 

로컬에서 충돌을 해결하기 위해 원격 remote에 저장된 사항을 pull 당겨왔다.

$ git pull origin donguk_gui

 

하지만, Git은 pull을 할 수 없다고 에러 메시지를 날려줬다.

이는, 충돌이 났기에 함부로 소스코드를 가지고 오지 않고 Git은 충돌한 사항이니, 참고하라고 메시지를 남긴 것이다.

 

git pull 명령에 --rebase 옵션 인자를 붙여서 로컬에서 충돌 사항을 함께 merge 했다.

$ git pull --rebase origin donguk_gui

 

로컬 브랜치에 원격 저장소의 소스코드가 당겨지고, 충돌난 사항에 대해서도 소스코드가 merge되어진다.

아래의 명령 프롬토콜을 참고해서, 충돌이 난 파일을 확인한다.

그리고, 그 파일로 편집기를 열어서 소스코드를 확인한다.

 

편집기로 파일을 확인하면, 충돌이 난 사항을 볼 수 있다.

여기서, 정상적으로 작동하는 코드를 선별해내서 원격 저장소에 작성된 코드와 로컬 저장소에 작성되었던 코드 중 하나를 삭제해서 충돌을 해결한다.

 

# 참고

<<<<<< HEAD : 

===========  이 표식이 존재하는 소스코드는 원격 저장소에 소스코드 이고,

 

 

===========

>>>>>>>>>>> 이 표식은 로컬 저장소에 존재하는 소스코드이다.

 

충돌을 해결을 완료 후 저장 후
git add .
git commit -m "커밋 메시지" 명령을 통해 로컬 저장소에 반영한다.
그리고나서, git push origin {원격 저장소의 push할 브랜치}를 입력해서 원격 저장소에 소스코드를 push 한다.
이때 push할 때는 -f 옵션인자를 붙여줘서 "로컬에서 충돌한 사항 반영해서 확인했으니, 강제 병합을 수행한다."
이 부분에 대해선 내가 추론한 Git 전략이고, 선배나, Git을 잘 다루는 사람에게 여쭤봐서 안정하게 관리하도록 하겠다.

충돌한 사항을 해결하고 git push origin {브랜치 명}을 수행하면,
현재의 브랜치가 원격 브랜치보다 뒤에 있으므로 업데이트가 불가능하다고 했다.
그래서, -f 옵션인자로 강제 병합을 시켰다.
로컬에서 충돌을 해결하고 원하는 소스코드가 만들어졌기에 강제 병합을 수행했다.

 

728x90
반응형

'CS 대학강의' 카테고리의 다른 글

[CS 1-2 | 프로그램 설계 방법론] Github 충돌해결 전략 - 모두의 루미큐브  (0) 2022.12.14
[CS 1-2 | 시스템 프로그래밍 기초] 포인터란 - 포인터 개념 & 포인터 의의  (2) 2022.12.11
[CS 1-2 | 오픈소스 SW 기초] Docker 이미지 & 컨테이너  (0) 2022.12.08
[CS 1-2 | 오픈소스 SW 기초] 실수로 main 브랜치를 건드렸을 때 대처법  (0) 2022.12.07
[CS 1-2 | 오픈소스 SW 기초] JAVA 프로젝트를 위한 개발 리소스 정리  (0) 2022.12.06
'CS 대학강의' 카테고리의 다른 글
  • [CS 1-2 | 프로그램 설계 방법론] Github 충돌해결 전략 - 모두의 루미큐브
  • [CS 1-2 | 시스템 프로그래밍 기초] 포인터란 - 포인터 개념 & 포인터 의의
  • [CS 1-2 | 오픈소스 SW 기초] Docker 이미지 & 컨테이너
  • [CS 1-2 | 오픈소스 SW 기초] 실수로 main 브랜치를 건드렸을 때 대처법
욱22
욱22
우기의 모든 걸 기록합니다.
    반응형
    250x250
  • 욱22
    우기 때 만나요
    욱22
  • 전체
    오늘
    어제
    • 우기 때 만나요 (250) N
      • 💭 경험&생각 (47)
      • 🌤 일상&취미 (12) N
      • 📖 북로그 (28)
      • 📚 스터디 (48)
        • 비즈니스 (0)
        • 백엔드 (17)
        • 프론트엔드 (9)
        • 디자인 (4)
        • 데이터베이스 (8)
        • 데이터 분석 (0)
        • 인공지능 (1)
        • 알고리즘 (9)
      • CS 대학강의 (78)
      • 🌤 프로젝트 (32)
        • UMC 2기: 동네 (15)
        • UMC 3기: 당신의 발자취 (6)
        • ERICA: 스타트업톤 (9)
        • ERICA: 또래튜터링 (2)
      • 🌤 대외활동 (5)
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • 태그

    자기계발
    백준
    java
    Kotlin
    사지방코딩
    디자인베이스
    객체지향 프로그래밍
    사지방 코딩
    대학생 개발 프로젝트
    창업
    드럼
    안드로이드
    대학생 대외활동
    티스토리챌린지
    디자인
    드럼 레슨
    자료구조
    생각정리
    파이썬
    오블완
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
욱22
[CS 1-2 | 프로그램 설계 방법론] Github에서 충돌났을 때 해결법
상단으로

티스토리툴바