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을 삭제? 자연스럽게 없애 버리는 것이다.
'CI&CD > Git' 카테고리의 다른 글
| [Git] git commit하고 push 시 다른 팀원이 올렸을 경우 (0) | 2024.08.04 |
|---|---|
| [Git] git rebase 후, git cherry-pick (5) | 2024.07.25 |
| [Git] git push 실수 후 되돌리기 (1) | 2024.07.22 |
| [Git] 버전 관리 시스템(VCS) history (0) | 2024.07.08 |
| anaconda에서 git 설치 및 git clone 세부사항 (3) | 2024.07.07 |