본문 바로가기

회고/Error Handling

2023-05-24 GIT - Reset, Pull

👉 에러 상황

 

현재 나는 'Pastar' 이라는 레스토랑 홍보 홈페이지를 제작중에 있는데 GIT으로 관리를 하려다가 데이터를 다 날려먹는 일이 발생했다.

시작한지 얼마 안되어서 코드량이 많지 않았기에 망정이지, 어느정도 진척이 있던 상황이었다면 진짜 꽤나 아찔했을뻔한 일이었다.

(복구를 금방하긴 했다..)

  1.  GIT으로 초기화되지 않은 폴더에서 코드 작업 진행
  2. 진행 도중 Github에 레포지토리 생성과 동시에 README 파일 생성하면서 initial commit 됌. (<-- 요놈이 충돌 원인)
  3. 해당 폴더에서 git init 이후, remote add 로 origin 주소 연결 ( 이 시점에서는 난 충돌이 발생할지도, 오류 포인트라는걸 인지조자 못하고 있던 상태) 후 git push origin main 으로 밀어 넣으려 하니 오류 발생
  4. 오류 메세지를 확인해보니, 로컬 저장소의 데이터와 원격 저장소의 데이터 상태가 상이하여 push를 할수 없으므로, pull을 먼저 진행해달라고 확인되서 git pull 진행. 그러나 역시 오류발생. 오류 메세지로 커밋 이력이 서로 달라 FETCH_HEAD 로 fetch 를 해오고 확인후 merge를 해달라 함
  5. 난 순간 오류메세지에 당황을 하고 어떻게 해결할지 몰라 인터넷 검색 후, 순조롭게 push를 하려면 강제로 HEAD를 원격저장소의 브랜치로 맞춰주면 된다는 글을 확인하고 'reset --hard' 를 사용
  6. 그러고 다시 바로 push를 진행하자, 메세지 왈 " 응? 너 밀어넣을 파일 없이 완벽히 일치한 상태인데? " 
  7. 확인해보니 작업한 파일 내역 대.폭.발 💥

        ❓ 원인

             일단 첫 단추가 잘못 끼워졌었다. 시작할때 git 원격저장소와 먼저 출발점을 맞춘 후에 시작을 했어야 했는데, 그러지 않은점.

             즉 내가 커밋한 내역과 원격저장소의 초기 커밋 이력이 다르기에 push 자체가 불가능 했고, pull 도 마찬가지 상태.

             그 상태에서 reset을 통해 원격저장소에게 맞췄으니 당연히 생성만 하고 아무 작업을 안했던 원격저장소의 파일 상태에 맞춰지며

             전체 파일이 날라가는 상황 발생

 

 

👉 해결 방책

 

1. 코드 작업을 시작하기전에 작업을 진행할 폴더를 git과 연결을 '먼저' 해주고 진행

2. 중간에 reset을 사용할게 아니라, FETCH_HEAD 에 있던 파일과 병합

 

'회고 > Error Handling' 카테고리의 다른 글

Nest.js in Life Cycle  (0) 2023.08.23
TypeORM + Postgresql Connection Error  (0) 2023.08.17
Nest.js Project 생성 오류 해결  (0) 2023.08.03
Sequelize - Transaction Error  (0) 2023.07.31