개요
배포한 빌드에 문제가 생겼을 때 이전 버전으로 급하게 롤백해야 할 상황이 발생합니다. 이 글에서는 Git을 사용하여 이전 버전으로 변경/커밋하는 방법을 안내합니다.
클론
레포지토리를 클론합니다. 클론 시 레포지토리의 가장 최신 버전 C 의 상태의 코드가 로컬에 클론됩니다.
git clone 레포지토리주소
체크아웃
우리는 버그가 없는 가장 마자막 버전 B를 사용하려고 합니다. 아래 명령을 통해 해당 버전(B) 으로 체크아웃합니다.
git checkout B
새 브랜치 생성
B 버전으로 적용하기 위해서는 우선 새 브랜치 생성이 필요합니다. B를 가리키고 있는 상태에서 D버전을 가진 새 브랜치 rollback-branch 를 생성합니다.
git switch -c rollback-branch
브랜치 덮어쓰기
이제 생성한 새 브랜치를 main 브랜치에 덮어쓰기 하겠습니다. rollback-branch 에서 아래 명령을 실행해 주세요.
git checkout rollback-branch
git branch -f main rollback-branch
Push
이제 main브랜치로 돌아와 push 해 주세요. 이 경우, 온라인에 기록된 커밋이 더 앞서있을 가능성이 높기에 -f 인자를 추가하여 강제로 push 해 주세요.
git checkout main
git push -f origin main
여담
이 방법은 브랜치 자체를 완전히 덮어씌우기에 rollback 전 기준 <> main 최신 커밋 사이의 히스토리가 남지 않습니다. Revert 기능을 사용할 경우 좀 더 안정적으로 할 수 있다는데, 실패했습니다. ort 전략으로 머지하면 롤백할 버전과 동일한 100% 버전으로 되돌아가지 않습니다.
좀 더 안정적이고 확실한 방법이 있다면 좋겠습니다. 만약 있을 경우 업데이트 하도록 하겠습니다.
참고 자료
- https://stackoverflow.com/questions/12256137/cloning-an-older-version-of-github-repo
- https://www.geeksforgeeks.org/how-to-create-branch-from-a-previous-commit-using-git/
- https://shortcuts.tistory.com/25
- https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging
- https://devocean.sk.com/blog/techBoardDetail.do?ID=165719&boardType=techBlog
'소프트웨어 & 클라우드' 카테고리의 다른 글
[Jupyter] nbconvert 사용하여 노트북 파일(.ipynb) 백그라운드 실행하기 (0) | 2025.02.27 |
---|---|
[Jupyter] Windows WSL2 에서 Jupyter Lab 원격 접속 세팅하기 (0) | 2025.02.10 |
[Anaconda] tensorflow GPU 환경 설치 및 전환 명령어 (0) | 2025.01.17 |
[TigerVNC] TigerVNC Server 윈도우에 설치하여 맥 화면 공유로 접속하기 (0) | 2025.01.07 |
[Windows] WSL2 .wslconfig 수정하여 사용 메모리 수정하기 (0) | 2025.01.01 |