- git checkout <파일명> : 아직 스테이징이나 커밋을 하지 않은 경우 파일의 변경내용을 취소하고 이전 커밋으로 되돌린다.
git checkout [-- 파일명]
- git diff : 작업 차이점 확인
git diff --cashed // 스테이징영역과 저장소의 차이점 확인
git diff HEAD // 저장소, 스테이징영역, 작업트리의 차이점 확인
git diff --ours // merge이전과 이후 결과 비교
git reset : commit한 코드 취소하기
HEAD~n : 마지막 n개의 커밋
git reset --soft <커밋>
→ 지정한 커밋 이후의 커밋을 취소하지만, 작업트리와 스테이징 영역은 유지
git reset --mixed <커밋>
→ 지정한 커밋 이후의 커밋들을 취소하고, 스테이징영역도 초기화, 작업트리는 유지
git reset --hard <커밋>
→ 지정한 커밋 이후의 모든 변경사항을 완전히 취소, 스테이징영역과 작업트리도 되돌아감
git reset --keep <커밋>
→ 작업 트리에 변경사항이 없는 경우에만 지정한 커밋으로 되돌림
ex) git reset --hard HEAD~3 // 마지막 세개의 커밋을 취소
※ git에서 add를 하지않은 파일은 작업트리에 add를 하면 스테이징영역에 있게 된다.
◇ git commit 취소하기
- git commit --amend : 마지막 커밋 메세지 수정
- git reset <기준> HEAD~1 : 마지막 커밋 되돌리기, <기준>은 위에 정의된 soft, mixed, hard에서 선택
◇ git push 취소하기
- push한 커밋 되돌리기
- 로컬에서 마지막 커밋을 되돌린다.
git reset --hard HEAD~1 (HEAD~n 특정 n번째 전 브랜치까지 되돌리기)
- 그런 다음 강제로 원격 저장소에 푸시한다.
※ 강제 푸시는 다른 팀원이 작업한 내용을 덮어쓸 수 있으니 주의!git push --force 또는 git push -f
'git & github' 카테고리의 다른 글
git & github - Github Actions (0) | 2024.10.01 |
---|---|
git & github - fetch, rebase, merge, pull, stash (0) | 2024.08.08 |
git & github - branch (0) | 2024.08.08 |
git & github - clone부터 다시 push까지 (0) | 2024.08.06 |
git & github - init부터 push까지 (0) | 2024.08.06 |