Git

원격저장소 내용으로 강제 업데이트

H_eh 2024. 3. 27. 10:53

- 배포와 빌드를 서버에서 진행하기 때문에(?) 로컬 저장소의 내용이 필요가 없다

- 원격저장소의 최근 변경내용만 로컬에 반영되면 된다

 

git 강제 업데이트 방법

git fetch origin
git reset --hard origin/main

 

1. 원격 저장소인 origin에서 최신 변경 내용을 가져온다

2. 현재 브랜치를 origin/main 브랜치의 상태로 강제로 이동시키는데, 

2-1. --hard 옵션은 로컬 작업 디렉토리에 있는 모든 변경 내용을 삭제하고 원격 저장소의 상태로 덮어쓴다.

 

 

 


왜 fetch, reset을 진행하게 되었냐면

기존처럼  git pull 을 진행하니 다음과 같은 에러가 발생했다

error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.

⇥ git에서 병합을 완료하지 않고 커밋하지 않은 상태에서 병합을 종료하려고 할 때 발생하는 에러라고 한다.

1. 충돌이 있는 경우 충돌을 해결하고

2. 'git add' 명령어로 스테이징한 후

3. 'git commit' 으로 커밋을 완료한다.

이렇게 하면 병합이 성공, 종료되어 작업을 계속 할 수 있다고 한다.

 

지난번 빌드 후 커밋하지 않았거나, 병합이 완료 되지 않은 상태라는데..

 

로컬의 내용은 필요없고(변경이 없고) 원격저장소의 내용으로 모두 덮어 쓰기를 원해서 다른 방법을 찾아봤다.

 

 

728x90
728x90