트러블 슈팅_미니 프로젝트(뉴스 피드) (2)

star_pooh·2024년 12월 26일
0

에러 대응기

목록 보기
7/9

미니 프로젝트를 진행하는 과정에서 팀원이 git에 익숙하지 않아서 develop 브랜치를 덮어쓰는 실수가 있었는데 그것을 해결한 방법에 대해서 적어보려고 한다.

현재 브랜치 상황은?

main (최종 브랜치)
┗ develop (개발 브랜치)
  ┣ post-api (뉴스피드 기능 브랜치)
  ┃ ┣ feature/xxxxx
  ┃ ┗ feature/xxxxx
  ┃
  ┗ user-api (사용자 기능 브랜치)
    ┣ feature/xxxxx
    ┗ feature/xxxxx

우리 조는 위의 예시처럼 브랜치를 운영하기로 정했다. 그래서 기능을 구현하기 전에는 해당하는 브랜치를 생성한 후 작업을 했어야 했다. 하지만 이렇게 git으로 작업하시는게 처음이시라 브랜치를 만들어야 한다는 것을 잊어버리셔서 git clone한 상태 그대로 develop 브랜치에 작업을 하시고 push까지 하셔서 develop 브랜치가 그대로 덮어써졌다. 그래도 다행인 점은 작업량이 많지 않은 시점이었다는 것이었다.

develop 브랜치 복구 방법은?

이미 push까지 진행된 상태였기 때문에 작업 내용을 임시로 저장할 수 있는 git stash를 사용할 수 없어서 아래와 같은 순서로 복구 작업을 진행했다.

// 현재까지의 작업 내용을 저장할 별도의 브랜치 생성
git branch <브랜치 이름>

// git log를 통해 이전 커밋의 해시 확인
git log

// git reset을 통해 이전 커밋으로 되돌리기
git reset --hard <이전 커밋 해시>

// 원격 저장소에 강제로 push
git push origin develop --force

프로젝트를 하게 되면 git에서의 실수가 발생할 것이라고 생각은 했는데 이렇게 바로 생길 줄은 몰랐어서 얘기를 듣고서는 당황을 좀 했던 것 같다. 그래도 작업량이 적었던 극초반에 발생해서 매를 먼저 맞는다는 생각으로 해결했던 것 같다. 작업 하기 전에 무조건 브랜치부터 만들어야 한다는 것을 잊지 않을 것 같다.

0개의 댓글

관련 채용 정보