Git(7) : reset, revert

notepad·2023년 5월 7일
0

git

목록 보기
7/14

reset: 재설정
revert: 되돌리기
비슷하지만 약간 다름
reset은 커밋을 제거하고 브랜치 포인터를 해당위치로 이동시키지만
revert는 변경사항을 삭제하는 커밋을 새로 하는 형태라 보면됨.

git reset <commit-hash>

일종의 soft reset
해당 commit으로 돌아가지만 작업내용은 남아있음.

git reset --hard <commit-hash>

git reset --hard HEAD~n

해당 commit으로 돌아감과 동시에 작업내용도 날림.

veritas@veritas:~/gitserver/gittest$ git reset HEAD~1
Unstaged changes after reset:
M       a.py
veritas@veritas:~/gitserver/gittest$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   a.py

no changes added to commit (use "git add" and/or "git commit -a")
veritas@veritas:~/gitserver/gittest$ git log --oneline 
0832b08 (HEAD -> master) change
9604190 modified merge
3085d7f (dev1) change2
c89332b change1
07e0d34 init2
6793199 init
veritas@veritas:~/gitserver/gittest$ git commit -a -m "restore"
[master 95f1ae9] restore
 1 file changed, 3 insertions(+), 1 deletion(-)
veritas@veritas:~/gitserver/gittest$ git status
On branch master
nothing to commit, working tree clean
veritas@veritas:~/gitserver/gittest$ git reset --hard HEAD~2
HEAD is now at 9604190 modified merge
veritas@veritas:~/gitserver/gittest$ git status 
On branch master
nothing to commit, working tree clean

git revert <commit-hash>

git revert HEAD~n

특정 commit 혹은 n commit 전으로 원상복귀 시키는 commit을 수행한다.
reset보다는 revert를 사용( 팀단위 프로젝트에서 혼동되지않음.)

veritas@veritas:~/gitserver/gittest$ git log --oneline 
a87d62b (HEAD -> master) asd
a50cc2c 2
adc0873 1
98f4bda asd
c291828 aa
bcd7255 2nd
2655eda 1st
46cf726 asd
bdcc725 1
9604190 modified merge
3085d7f (dev1) change2
c89332b change1
07e0d34 init2
6793199 init
veritas@veritas:~/gitserver/gittest$ git revert a87d62b
[master 46c1602] Revert "asd"
 1 file changed, 3 insertions(+), 1 deletion(-)
veritas@veritas:~/gitserver/gittest$ git status 
On branch master
nothing to commit, working tree clean
veritas@veritas:~/gitserver/gittest$ git log --oneline 
46c1602 (HEAD -> master) Revert "asd"
a87d62b asd
a50cc2c 2
adc0873 1
98f4bda asd
c291828 aa
bcd7255 2nd
2655eda 1st
46cf726 asd
bdcc725 1
9604190 modified merge
3085d7f (dev1) change2
c89332b change1
07e0d34 init2
6793199 init

0개의 댓글