Git 사용하기
[git 사용하기] - 버전 관리 (checkout, restore, reset, revert)
폴라민
2022. 8. 28. 01:07
반응형
checkout
- 크게 두가지 기능을 한다.
- branch 혹은 Commit 전환(switch)
- 내용 되돌리기 (restore)
이번 포스팅에서는 내용 되돌리기 (버전관리) 기능을 살펴보자
내용 되돌리기 (버전관리)
모든 변경 사항 취소
git checkout .
- 대상: 아직 add / commit 되지 않은 내용 (Working Directory에 있는 변경 내용)
되돌리고 싶은 파일은 추적 되고 있어야 한다.
- checkout으로 지워버린 내용은, commit하지 않고 지운 내용이기 때문에 다시 복구할 수 없다.
git restore .
- 같은 기능이며 checkout에서 파일 복구하는 기능만 따로 뺀 명령어라고 한다.
- 최근에는 이 명령어를 더 많이 사용한다고 한다.
특정 파일에서 작업한 내용 삭제
git checkout -- {File Name}
- 대상: 아직 add / commit 되지 않은 소스 (Working Directory에 있는 변경 내용)
- 추적되고 있는 파일명이어야 한다.
- 다른 파일의 변경 내용은 바뀌지 않는다.
git restore {File Name}
git add 명령으로 staging area에 올라간 파일들을 다시 working directory로 되돌리는 방법
git restore --staged <파일명>
특정 Commit 버전으로 전환
git checkout {Commit Hash}
ex) git checkout 3bb6d5da38b98eac5d18bb71c652b34d5a8b4727
- 아직 Commit 하지 않은 내용이 있다면 전환되지 않는다.
- 커밋 해시는 git log 명령어를 통해 확인할 수 있다.
git restore --source=<hash> <파일명>
전체 다 되돌리려면 파일명에 . 점하나 찍어주면 된다.
다시 최신 커밋으로 돌아가기
git checkout master
⇒ checkout은 사용법만 알아두고 restore을 위주로 쓰는 것이 좋을 거 같다.
checkout으로 돌아가면 이전 커밋 시점으로 돌아가기만 하는데,
restore을 사용하게 되면 이전 커밋으로 돌아간 시점의 파일들이 새로 추가 되는 형태이다. (즉 add, commit 가능) - 이후의 커밋 로그들이 사라지진 않는다.
특정 커밋으로 되돌아가기
reset 명령어
- 특정 커밋으로 되돌아간다는 점에서 restore와 비슷하지만 되돌아간 시점 이후 모든 커밋들이 초기화 되어 히스토리에서 사라진다. 따라서 사용시 주의가 필요하다.
git reset <hash>
특정 커밋만 취소
revert 명령어
- 특정 커밋만 제거
git revert <hash>
출처:
반응형