본문 바로가기
개발/Git

[Git] 로컬 저장소에 원격 저장소 내용 덮어쓰기

by seopport 2023. 9. 4.
728x90
반응형

들어가기 전에

여러 기업들에서는 다양한 형상관리 도구를 사용합니다. 지금 직장에서도 Git 이 아닌 다른 도구를 사용하고 있습니다. 대중적으로 알려진 형상도구관리 중 하나인 Git을 사용하면서 유용했던 몇 가지를 작성해 보자 합니다.

 

혹시 GIt 으로 개발을 하시면서 로컬 저장소와 원격 저장소의 차이가 발생하였을 때, 로컬 저장소의 내용을 원격 저장소의 내용으로 덮어쓰기 하고 싶은 적이 있으실까요? 원격 저장소의 내용을 내려받아서 덮어쓰기 하신 적이 있으신가요? 네 바로 필자가 그랬습니다.

 

단 2줄의 명령어면, 번거롭지 않게 로컬 저장소에 원격 저장소의 내용을 덮어씌울 수 있습니다.

* 별도의 브랜치를 따로 두지 않고, master 기준으로 설명드립니다.

 

Git 명령어

 

git fetch <원격저장소 이름>

git fetch --all

등록된 모든 원격 리포지토리 및 브랜치를 가져오는 강력한 명령입니다.

 

git reset -- hard <commit-id>

git reset --hard origin/master

git reset --hard 를 사용하면, 현재 작업 위치인 HEAD의 포인터를 특정 위치로 변경시킬 수 있습니다.

 

스택오버플로우 참고 내용

스택오버플로우 라는 사이트는 세계의 개발자들에게 질문을 할 수 있는 유용한 사이트입니다. 물론 공식 문서가 아닌 개발자들에 의한 답변이기 때문에 무조건 정답이다라고는 할 수 없습니다. 다만 조금이라도 이해를 돕기 위해 이미지를 남깁니다.

질문
git 질문

git reset --hard origin/master의 의미는 무엇입니까? 어떻게 작동합니까?

 

git 답변
git 답변

단계별 또는 단계별이 아닌 변경 사항은 모두 버리고, 현재 로컬 지점의 모든 것을 잊고 오리진/마스터와 정확히 동일하게 만듭니다.

 

명령을 실행하기 전에 이 질문을 하고 싶었을 것입니다. "하드 리셋"에서와 같은 단어를 사용하여 파괴적인 특성을 암시합니다.

 

참고 사이트

스택오버플로우 질문 및 답변

 

What is the meaning of git reset --hard origin/master?

I did a git pull and got an error: The following working tree files would be overwritten by merge... Please move or remove them before you can merge. To resolve this I did the following: git

stackoverflow.com

jackseo 님 블로그 - git 로컬 덮어쓰기

 

git pull로 로컬 파일 덮어쓰고 싶을 때

https://stackoverflow.com/questions/1125968/how-do-i-force-git-pull-to-overwrite-local-files여기에 자세히 나와있다.위 명령어를 입력하면 된다.git fetch는 merge 혹은 rebas

velog.io

728x90
반응형