메뉴 건너뛰기

Git을 이용할 때 가끔 로컬 브랜치의 내용을 이전 커밋 상태로 만들 필요가 생깁니다. 로컬 브랜치를 이전 커밋으로 되돌리는 방법을 알아보겠습니다.
다음과 같은 history를 가질 때 11월 3일 커밋으로 되돌리는 절차를 알아보겠습니다.
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2014 -0400

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2014 -0400

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2014 -0400

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2014 -0400

Case 1) 임시로 로컬 workspace를 이전 commit 상태로 만들고 싶을 때:
브랜치 이름을 정하지 않고 checkout을 하게 됩니다. 따라서 checkout된 commit 내용은 작업 중인 HEAD와 별개로 존재하게 됩니다.
git checkout 0d1d7fc32


Case 2) 새로운 브랜치를 만들어 이전 commit 되었던 내용을 checkout 하고 싶을 때:

git checkout -b previous_commit 0d1d7fc32


Case 3) Publish 되지 않은 (push 되지 않은) 로컬 커밋과 변경 내용을 모두 삭제하면서 이전 커밋 되돌리기

git reset --hard 0d1d7fc32

참고로 로컬 변경 내용을 잠시 대피 시켰다가 이전 commit 상태로 만든 다음 복원하는 방법

git stash
git reset --hard 0d1d7fc32
git stash pop


Case 4) Publish 된 (Push된) 커밋으로 되돌리기

git revert a867b4af 25eee4ca 0766c053
git checkout 0d1d7fc32e5a947fbd92ee598033d85bfc445a50 .
git commit

TAG •

Who's PSEG

profile

PSEG는 Practical Software Engineering Group의 약자입니다. 

이론을 넘어 실용적으로 활용할 수 있는 소프트웨어 공학을 공유하는게 그룹의 목적입니다.

?
Comment '2'
  • ?
    청아 2015.01.06 10:38
    복잡해 보이긴 하지만 용도에 맞게 예제를 사용하면 되겠네요.
  • ?
    시빈 2015.01.06 10:41
    좋은 정보 감사합니다.

 


  1. 1
    08월 12일
    2015

    bitnami-redmine 3.1 설치 오류

    production.log bitnami- redmine 3.1을 설치 했다가, uninstall.exe로 삭제 후 재부팅. 재설치 하였습니다. http://localhost/redmine/입력시 아래와 같은 메세지가.. ㅠ_ㅠ) Internal errorAn error occurred on the page you were trying to access...
    ByAREA88 Reply1 Views13354 file
    Read More
  2. 1
    06월 22일
    2015

    gerrit 설치중에 apache 서버 실행이 안됩니다.

    문서에 Gerrit 설치하는걸 해보고 있는데요 아래와 같이 apache 서버 실행시 에러가 발생하고 있습니다. 현재 윈도우에 vmware로 유분투 설치해서 사용중입니다. apache2: Could not reliably determine the server's fully qualified domain name, usi...
    By뿡사랑 Reply1 Views9031
    Read More
  3. 8
    02월 11일
    2015

    Gerrit 설치 및 초기셋팅문제

    안녕하십니까  Windows2008 Server + Git   서버에  Gerrit 환경을 구축중입니다. Gerrit + postgresql + Tomcat에 얹어서 Gerrit 페이지를 띄우는데까지는 성공했으나 로그인 화면이 뜨지않아 http://pseg.or.kr/pseg/infoinstall/1802 링크를 보...
    Byinval Reply8 Views17730
    Read More
  4. 3
    02월 09일
    2015

    redmine 관련 devkit 설치 시 오류가 납니다...

    redmine 설치를 위해 devkit 설치 진행 중 하기와 같은 오류가 납니다. C:\devkit\bin>ruby dk.rb init ruby : No such file or directory -- dk.rb<LoadError> 도와주세요..ㅠ
    Byjihye Reply3 Views11760
    Read More
  5. 1
    01월 20일
    2015

    여러개의 원격 저장소를 로컬에서 트랙킹하는 방법이 있나요?

    여러개의 원격 저장소를 로컬에서 트랙킹하는 방법이 있나요? Git remote 명령을 이용하면 되겠습니다. Step 1) 원격 저장소 클론하기 $ git clone git://example.com/project $ cd project Step 2) 원격 브랜치들 확인하기 $ git branc...
    ByPSEG Reply1 Views12438
    Read More
  6. 3
    01월 20일
    2015

    원격 (Remote)의 모든 브랜치를 클론 하는 방법을 알고 싶습니다.

    원격 (Remote)의 모든 브랜치를 클론 하는 방법을 알고 싶습니다. Step 1) 프로젝트 클론하기 $ git clone git://example.com/project $ cd project Step 2) 로컬 브랜치들 확인 $ git branch * master Step 3) 숨겨진 브랜치 확인 하기 ...
    ByPSEG Reply3 Views11917
    Read More
  7. 1
    01월 08일
    2015

    머지 (merge) conflict 를 해소하는 일반적인 방법을 알려주세요

    Git의 merge conflict를 해소하는 가장 일반적인 방법을 정리 합니다. Conflict 발생 git fetch origin git pull origin master From ssh://developer@pseg.or.kr:22/projectname * branch master -> FETCH_HEAD Updating aa30c3a..bb25213 error: E...
    ByPSEG Reply1 Views17967
    Read More
  8. 1
    01월 06일
    2015

    Git에서 레파지토리의 폴더를 별도의 repository로 분리하는 방법을 알려주세요

    프로젝트를 진행하다보면 특별한 모듈을 분리해서 독립적인 repository로 분리할 필요를 느끼게 됩니다. 아래와 같은 변경을 가하고 싶다고 가정하겠습니다. project/ .git/ module1/ module2/ module3/ --[변경후]--> project/ .git/ module1/ modu...
    ByPSEG Reply1 Views17018
    Read More
  9. 2
    01월 06일
    2015

    Git에서 로컬 브랜치를 이전 커밋으로 되돌리는 방법을 알려주세요

    Git을 이용할 때 가끔 로컬 브랜치의 내용을 이전 커밋 상태로 만들 필요가 생깁니다. 로컬 브랜치를 이전 커밋으로 되돌리는 방법을 알아보겠습니다. 다음과 같은 history를 가질 때 11월 3일 커밋으로 되돌리는 절차를 알아보겠습니다.$ git log commit a867...
    ByPSEG Reply2 Views15349
    Read More
  10. 1
    01월 01일
    2015

    로컬과 리모트의 브랜치 삭제 방법을 알려주세요

    개발하다보면 기능 개발을 위해 브랜치 (branch)를 만들었다가 완료되면 브랜치를 삭제할 일이 자주 생깁니다. 이럴 때 아래의 명령으로 간단히 remote와 local의 branch를 삭제할 수 있습니다. git push origin --delete <branchName> or $ gi...
    ByPSEG Reply1 Views13444
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
/ 12