지옥에서 온 Git

과거의 버전으로 돌아가기

수업소개

버전관리의 중요한 효용은 과거의 상태로 돌아갈 수 있다는 점입니다. 여기서는 이 방법에 대해서 알아봅니다. 한가지 주의하실 점은 과거로 돌아가는 작업은 위험한 작업입니다. 여기서는 과거로 돌아가는 방법이 있다는 점만 우선 확인하시고, 실제로 사용할 때는 좀 더 깊게 공부하고 사용하시는 것이 좋습니다. 

수업

수업에서 사용한 명령

아래 명령은 버전 id로 돌아가는 명령입니다. 

git reset --hard "버전 id" 

버전 id의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령

git revert "버전 id"

참고

reset과 revert의 차이점에 대해서 재미있게 설명하는 카툰입니다. 

http://www.popit.kr/

댓글

댓글 본문
작성자
비밀번호
  1. orez
    정리 감사드립니다 ㅠㅠ! 스스로 정리하는데, 큰 도움을 받고 있습니다.
    대화보기
    • 알파고
      감사합니다.
    • 김세창
      아주 잘 배워갑니다~~^^ ㅎㅎ
    • 김수현
      과거의 버젼으로 돌아가는 방법이 하나 더 있더군요.
      이곳 수업에서 나옵니다.

      [원격 저장소를 지역 저장소로 복제(Github)] 수업에서 나옵니다.
      그곳 수업에서는 과거 첫번째 버젼으로 돌아가는 방법이 나옵니다.

      아래가 방법입니다.
      git checkout ID (과거로 돌아가는 방법)

      위에서 ID는 79621d01fdfcfd6ceb5d915a15567139711cc8b8과 같이 써있는 아이디를 말합니다.
      checkout 명령은 뒤 브랜치부분수업에서 배울 내용으로 새로운 가지가 만들어져 있을 때
      그 가지속으로 들어가는 명령입니다.

      위에서는
      새로운 가지를 만듬과 동시에 그곳으로 이동하는 명령으로 사용되었습니다.
      위와 같이 명령을 하고 가지속에 들어가서 파일을 보면...과거 버젼의 파일이 존재하는 것을 확인할 수 있습니다.

      이런 내용도 있네요.
      체크아웃 대상은 브랜치, 커밋, 그리고 태그입니다. 체크아웃을 통해 과거 여러 시점의 소스코드로 이동할 수 있습니다. https://tuwlab.com......202 <---checkout이 과거 시점으로 이동하는 방법이다라고 써 있네요.

      -----------------------------------------
      SourceTree 프로그램을 이용하여 Git을 사용할 경우
      https://opentutorials.org......043 <-- 커밋을 한 후 커밋하기전 상태로 변경하는 강의입니다.
    • 김수현
      또다른 효용 과거로 돌아갈 수 있다.
      커밋을 취소하는 명령 > 어려움+주의해서 해야 함
      5에서 3으로 돌아가고 싶은 경우 > 2가지 방법 있음
      reset Vs revert
      디렉토리의 전체 내용을 복사한 후 > 정 돌아가기 힘들다 할 경우 > 다시 복사 붙여넣기 해서 복원할 수도 있음
      사고를 방지해야 함 (신중히, 연습이 많이 필요)
      5와 4를 삭제후 3으로 돌아가고 싶은 경우
      git reset ID(돌아가고 싶은) 79621d01fdfcfd6ceb5d915a15567139711cc8b8 --hard
      git log
      4번과 5번이 사라짐
      vim f1.txt
      q
      vim f2.txt
      q
      git은 왠만하면 없애지 않음 없는 것 처럼 보이지만 남아 있다.
      나중에 복구할 수 있음 > 그렇게 하기위해서는 깃의 원리를 이해해야 한다.
      원격 저장소를 배우면 협업을 할 수 있게 됨
      공유한 이후에는 절대로 reset을 하면 안됨
      여러분의 컴퓨터에 있는 버젼에 대해서만 reset작업을 해야 함
      --hard는 위험 soft를 사용하길 권함

      또다른 방법
      git revert라는 방법이 있음
      커밋을 취소하면서 새로운 버젼을 생성하는 것
      어떤 방법으로 하든간에 커밋을 되돌릴 수 있다정도로만 아직 이해할 것
    • git reset (버전명) --hard --soft --mixed
      기재한 버전의 이름의 상태로 돌아감.
      추가 옵션에 따라 로그 자체가 날아갈수도 있고 역사를 되살리는 기록이 새로 추가되는 경우로 나뉨.
    • 이현수
      만화가 쉽게 설명되어 있네요 ㅎㅎ
    • groundntree
      reset 실습

      * 현재 로그 확인하여 버젼 id 확인하기
      git log

      * reset 하고 싶은 버젼id copy 하세요

      * reset
      git reset fb28d5148030104a16dd0f750e457a283e0d25a4 --hard

      HEAD is now at fb28d51 f2.txt first commit

      * 지정된 버젼으로 돌아갔는지 로그로 확인하세요.
      git log

      * f1.txt 의 내용이 리셋된 버젼의 내용인지 확인
      vim f1.txt
    • Philip Oh
      감사합니다:)
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기