본문 바로가기
CI&CD/Git

[Git] git add 되돌리기, git commit 되돌리기

by TSpoons 2024. 7. 22.

1. git add 되돌리기  - git restore

git add 는 working directory에 있는 내용을 staging area로 옮기는 작업이다!

 

- before

git restore .vscode/settings.json

 

전체 staged area(repository)에 있는 모든 파일을 working directory로 

git restore --staged .

 

- after

 

2. git commit 되돌리기

2-1. git log 확인 

git log --oneline

 

 

 

2-2-1 git revert 

- 돌아가는 것 또한 commit 기록으로 남기고 싶을 때

git revert <commit_hash>

 

2-3 HEAD가 가리키는 지점부터 하나! 지우기

 

  커밋에 대한 영향 스테이지 영역에 대한 영향 작업 디렉토리에 대한 영향 사용 사례
--soft HEAD를 지정한 커밋으로 이동 변경 사항을 스테이징 상태로 유지 변경 없음
커밋을 취소하되, 변경 사항을 스테이징 상태로 유지하고 싶을 때
--mixed HEAD를 지정한 커밋으로 이동 변경 사항을 언스테이지 변경 없음
커밋을 취소하고, 변경 사항을 언스테이지 상태로 유지하고 싶을 때
--hard HEAD를 지정한 커밋으로 이동 변경 사항을 언스테이지 작업 디렉토리를 리셋 (변경 사항 삭제)
커밋을 완전히 취소하고, 모든 변경 사항을 삭제하고 싶을 때

 

 

git reset --soft HEAD~1

working directory는 건드리지 않고, reset 

 

 git reset -hard HEAD~1

그냥 commit 내역대로 working directory도 싹 다 바뀜

 

 

 

2-4 git rebase

-  중간 커밋을 삭제할 때 용이

git rebase -i HEAD~n

 

브랜치의 변경 사항을 다른 브랜치 위로 이동: rebase는 현재 브랜치의 커밋들을 다른 브랜치의 커밋들 위로 옮길 수 있다.

 

이 점을 이용해서 commit을 삭제? 자연스럽게 없애 버리는 것이다.