[Git] 되돌리기

한결·2023년 1월 13일
0

Github

목록 보기
8/14
post-thumbnail

git 되돌리기

(3가지 경우가 있음)

1. wd - 수정된 내용을 이전 상태(버전, commit)

  • git restore {filename}

  • 이전으로 되돌릴 수 없으니 조심

  • git이 추적하고 있는 (버전이 기록되고 있는 상태)의 파일만 되돌릴 수 있음

    즉, git addmodified인 상태만 가능

2. staging area 에서 wd로 다시 내리기

  1. root-commit이 없는 경우

    • git rm --cached <file>
  2. " 이 있는 경우

    • git restore --staged <file>

3. repository 단계

  • 커밋 이후 다시 staging area로

    1. staging area에 새로운게 x (커밋을 하자마자)
    • git commit --amend >i>커밋메세지 수정 및 저장 가능

    1. staging area에 새로운게 o
    • git commit --amend >i>새로운 파일과 함께 커밋메세지 수정 및 저장 가능


git reset [옵션] <커밋id>

  • 커밋을 통채로 없앨 수 있음

  • [옵션]

    commit1 - c2- c3 -c4(최신상태) / c2로 돌아가고싶다고 가정

    1. --soft
    • 돌아갈 커밋 이후 커밋된 파일을 staging area로 되돌린다
    1. --mixed
    • 기본값

      돌아갈 커밋 이후 커밋된 파일을 wd로 되돌린다 (단, 수정사항은 남아있음)

    1. --hard
    • 완전히 c2일떄의 상태로 되돌아감 (사용할 때 조심해야함)

      옵션w.ds.arepo
      --softHEAD가 특정 커밋을 가르킴
      --mixedHEAD가 특정 커밋을 가르킴
      --hardHEAD가 특정 커밋을 가르킴

    1, 2, 3 모두 HISTORY(커밋내역)을 삭제
    단, --hard 옵션 사용시 기존의 Untracked 파일은 여전히 Untracked로 남는다.


git revert abcd

  • <abcd> 라는 커밋을 취소
    (reset abcd : <abcd> 라는 커밋으로)

  • <abcd> 는 아래와 같이 git log --oneline 하면 나타나는 커밋 번호

  • git revert abcd efgh ijk
    커밋 여러개를 취소하는 것도 가능

0개의 댓글