1. 상황
우리 회사는 각각의 프로젝트를 빌드한 모듈들을 하나의 패키지로 만든다.
이런 모듈들을 모은 패키지를 하나의 Git Repsitory로 버전관리를 하는데
패키지를 만들어 테스트를 하던 도중 버그가 발견되어
특정 모듈만 수정이 필요하였다.
특정 모듈 프로젝트를 수정하고 빌드하여 패키지 파일을 수정할 때
배포 자동화 스크립트 동작을 위하여
수정이 필요한 모듈의 파일만 이전 버전으로 되돌릴 필요가 있었다.
여러 모듈들이 동시에 수정된 내용이 하나의 커밋으로 반영이 된 상황이었다.
그리고 이 커밋의 내용 중 일부는 남기고 일부는 이전 커밋으로 돌려야 할 필요가 있었다.
이럴 때 어떤 Git 명령어를 사용하면 될지 찾아보았다.
2. 실행해야 하는 명령어
아래의 두 명령어를 실행하여 특정 폴더만 이전 버전으로 돌리고 재커밋을 하였다.
처음에는 체크아웃만 하면 될 줄 알았으나 Added와 Deleted된 파일들은 indexed되어 이전 버전 상태로 Add 및 Delete가 되지 않아 reset을 먼저 해줘야 한다.
// git reset [커밋 아이디] -- [경로]
git reset 583f36ab -- ./Channel
// git checkout [커밋 아이디] -- [경로]
git checkout 583f36ab -- ./Channel
3. 참고했던 사이트
https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified
https://stackoverflow.com/a/30875442
'Git' 카테고리의 다른 글
과거 커밋들을 수정, 삭제, 병합, 분할하는 rebase -i (0) | 2022.09.18 |
---|---|
커밋을 수정하는 commit --amend (0) | 2022.09.18 |
브랜치를 다른 브랜치에 이어붙이는 rebase (0) | 2022.09.18 |
Git 서버 IP를 변경하였을 때 Submodule을 받아올 IP가 변경이 안되어 Pull 받을 때 에러 발생할 경우 해결한 방법 (0) | 2022.01.26 |
Git Commit Message 수정하기 (1) | 2021.05.17 |