코린이의 개발 일지

[git 사용하기] - 버전 관리 (checkout, restore, reset, revert) 본문

Git 사용하기

[git 사용하기] - 버전 관리 (checkout, restore, reset, revert)

폴라민 2022. 8. 28. 01:07
반응형

checkout

  • 크게 두가지 기능을 한다.
  1. branch 혹은 Commit 전환(switch)
  2. 내용 되돌리기 (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>

출처:

https://zoosso.tistory.com/729

https://nohack.tistory.com/69

반응형

'Git 사용하기' 카테고리의 다른 글

[git 사용하기] branch 기능 사용하기  (0) 2022.08.31
Comments