지옥에서 온 Git

과거의 버전으로 돌아가기

수업소개

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

수업

수업에서 사용한 명령

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

git reset --hard "버전 id" 

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

git revert "버전 id"

참고

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

http://www.popit.kr/

댓글

댓글 본문
작성자
비밀번호
  1. 김수현
    과거의 버젼으로 돌아가는 방법이 하나 더 있더군요.
    이곳 수업에서 나옵니다.

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

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

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

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

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

    -----------------------------------------
    SourceTree 프로그램을 이용하여 Git을 사용할 경우
    https://opentutorials.org......043 <-- 커밋을 한 후 커밋하기전 상태로 변경하는 강의입니다.
  2. 김수현
    또다른 효용 과거로 돌아갈 수 있다.
    커밋을 취소하는 명령 > 어려움+주의해서 해야 함
    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라는 방법이 있음
    커밋을 취소하면서 새로운 버젼을 생성하는 것
    어떤 방법으로 하든간에 커밋을 되돌릴 수 있다정도로만 아직 이해할 것
  3. git reset (버전명) --hard --soft --mixed
    기재한 버전의 이름의 상태로 돌아감.
    추가 옵션에 따라 로그 자체가 날아갈수도 있고 역사를 되살리는 기록이 새로 추가되는 경우로 나뉨.
  4. 이현수
    만화가 쉽게 설명되어 있네요 ㅎㅎ
  5. 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
  6. Philip Oh
    감사합니다:)
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기