본문 바로가기

개발도구 사용법/Git으로 버전관리 하기

[ git ]step.6 git restore, revert, reset

 

 

[git resore]  commit 했던 시점으로 파일한개를 되돌릴수 있습니다(파일복구 가능) 

내용이없는 A , B ,C파일 3개를 만들고 commit 합니다.

 

C파일에 잘못된 내용을 입력하고 저장합니다.되돌릴 방법은...

git restore 파일명

 

[실행결과] git restore 실행결과 

git restore 파일명 입력합니다. 이후 이전 commit 시점으로 돌아와서 내용이 없어졌습니다.

 

[git restore --source] 특정한 commit 아이디 시점으로 복구하는 방법 

(base) admin@dmshin git_test % git log --oneline
96f46ad (HEAD -> main) c  // file name c.txt
6dff835 b    //file name b.txt
62db30a a   //file name a.txt

commit ID 확인하기

 

git restore --source 커밋아이디 파일명

git resotre --source 62db30a b.txt // 커밋아이디(62db30a) commit 시점에 b.txt는 없었다.
//그래서 결과는 아래와 같이 b.txt 삭제된다.

git resotre --source 62db30a c.txt  //실행하면 c.txt도 사라졌다.

 

걱정없이 restore 명령어로 다시살릴수있다.

 

[git restore --staged 파일명 ]  - staging  취소하기

 

add_a~c.txt 파일을 git add . 하여 하단에 3개 파일 모두 staging 된 상태 확인 (예전파일은 헷갈려서 삭제함)

git restore --staged 파일명
git restore --staged add_a.txt
git restore --staged add_b.txt

[최종 결과 ] 

add.a~b.txt. 가 staging에서 빠진것을 확인할수 있다.


출처

https://seonkyukim.github.io/git-tutorial/git-status/

 

 

[git revert ] 특정한 commit 취소하기 
-> git 특성상 commit을 삭제하거나 조작할 수는 없다  그래서 삭제 시점의 commit을 생성하여 해결할 수 있다.

git revert 커밋아이디

1.맨처음 commit을 취소 시도했는데 내용이 없어서 아무동작도 안함 2. 최신 commit내용으로 시도함

 

에디터 창이 뜨면서 commit 메세지 변경내용을 알려줌 아래 commit 변경사항도 참고 메세지 변경 저장후 나감

 

 

[최종결과 ] 

revert 명령어 정상 동작 확인
revert 된 상태 확인, 파일복구 확인

 

[git reset ]  - commit 아이디가 있던 시점으로  모든 commit을 되돌림(협업 시 사용금지, commit 모두 날아감)
   1. --hard  => 해당 시점 이후 발생되었던 commit은모두 삭제
   2. --soft  =>해당 시점 이후 발생되었던 commit은 staging되어있음

git reset --hard 

commit 아이디 중 b에 해당하는 6dff835에서 사용할 예정

git reset --hard 커밋아이디
git reset --hard 6dff835

[실행완료] 

실행완료
해당 시점 이후 나머지 commit은 사라진다.

 

 

git reset --soft

git reset --soft 6dff835

 

 

나머지 파일들이 staging에 올라간모습

 


여기까지 감사합니다.

 

 

=======================================================================

해당 시리즈는 코딩애플 강의 "매우쉽게 알려주는 git & github" 참고 하였습니다.

https://codingapple.com/

 

코딩애플 온라인 강좌 - 개발자도 단기완성!

단연 NO1 강사님의 NO.1 강의 역시나 명강입니다. IT 업계의 대치동 NO1. 강사같은 엄청난 강의력. 코딩애플님의 강의는, 엄청나게 기초적인 것부터 가르치는 듯 보이지만, 실제로 다루는 깊이는 절

codingapple.com

 

반응형