목차
반응형

원격 리포지토리의 특정브랜치를 현재 로컬 브랜치와 병합하는 방법
현재 로컬 브랜치의 수정 내용을 무시하고 원격 브랜치의 최근 커밋을 불러오는 법
bash
닫기#1 현재 로컬 브랜치로 이동 $ git checkout <로컬 브랜치> #2 git pull -f로 강제 병합 $ git pull <원격 리포지토리> <원격 브랜치명> -f #2 예시 $ git pull origin main -f
git pull = git fetch(해당 원격 리포지토리에서 불러오기) + git merge(변경 내용을 병합하기)가 합쳐진 명령어이다.
그 과정에서 로컬 브랜치의 수정 내용이 있을 시 git pull은 충돌이 발생하지만,
--force (-f) 로 강제로 pull 함으로써 기존 브랜치에서 작업하던 내용이 전부 날아가며, 현재 원격 브랜치의 최근 커밋과 그 내용을 기존 브랜치에 덮어씌운다.
현재 로컬 브랜치와 원격 브랜치를 비교하여 충돌을 해결하는 방법
bash
닫기#1 현재 로컬 브랜치로 이동 $ git checkout <로컬 브랜치명> #2 git fetch로 원격 브랜치의 변경 내용을 불러오기 $ git fetch <원격 리포지토리> <원격 브랜치명> #3 git diff로 원격 브랜치와 변경 내용을 비교 $ git diff <로컬 브랜치명> <원격 리포지토리>/<원격 브랜치명> #4 충돌이 발생한 파일을 수동으로 해결(깃허브를 참고해 통일, 혹은 수정 내용 삭제) #5 충돌 해결 파일은 스테이징 영역에 추가 $ git add conflicted file #6 커밋 $ git commit -m "Conflict Resolved ..." #7 변경사항을 원격 리포지토리에 push $ git push origin local_branch
같은 코드에서 충돌이 발생하면 굉장히 번거롭기 때문에 기본적으로 어떠한 코드 수정작업을 착수하기 전에 미리 최신 버전의 pull을 당겨온 후에 작업하는 것이 좋다.
그렇지 않으면 백이면 백 충돌이 발생하기 때문에, 이후에 수정 사항을 일일히 맞추는 것이 굉장히 번거롭다.
반응형
'DEV > Git' 카테고리의 다른 글
[Github] 깃허브 일일 자동 잔디 심기(오토 커밋) 툴 소개 (0) | 2024.06.29 |
---|---|
[Git 기초] 깃 특정 시점 커밋 열람하고 다시 돌아가는 명령어 (2) | 2023.11.20 |
[Github] 깃헙 플로우(Github-Flow) 의 이해와 절차 (0) | 2023.10.30 |
[Git 기초] Git Bash 기본 명령어 (3) | 2023.10.18 |