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