2013-08-20 4 views
42

Git 브랜치에서 이전 커밋으로 되돌리는 방법을 알고 있지만 태그에 의해 지시 된 브랜치 상태로 되돌리려면 어떻게해야합니까? 나는 다음과 같은 것을 상상한다.어떻게 Git의 특정 태그로 되돌릴 수 있습니까?

git revert -bytag "Version 1.0 Revision 1.5" 

이게 가능한가?

+0

"브랜치를 되감기"(즉, * 제거 * 커밋)하거나, 현재 브랜치에 * 새로운 * 커밋을 추가하고, 브랜치를 설정하여 모든 파일이 " 그 태그에 의해 주어진 커밋 "? – torek

+0

당신이 묘사하는 방식으로 현재 브랜치에 새로운 커밋을 추가한다고 생각 하겠지만, 작업을 끝내야 만한다. –

+0

이 경우 [this answer] (http : //www.ibm.com/developerworks/kr/)에서'git checkout .' 메서드를 사용한다. /stackoverflow.com/a/4114122/1256452). – torek

답변

72

힘내 태그는 커밋을 가리키는 포인터 일뿐입니다. 따라서 HEAD, 브랜치 이름 또는 sha 해시를 수행하는 것과 같은 방식으로 사용합니다. 커밋/리비전 인수를 허용하는 모든 git 명령에 태그를 사용할 수 있습니다. git rev-parse tagname으로 시도하면 포인터가 가리키는 커밋을 표시 할 수 있습니다.

  1. 특정 태그에 현재 분기를 재설정 :

    git reset --hard tagname 
    
  2. 이의 상태에 당신을 얻을 되돌리기 위에 커밋 생성 귀하의 경우에는

    당신은 적어도 두 가지 대안이있다 태그 :

    git revert tag 
    
,

커밋을 병합하면 충돌이 발생할 수 있습니다.

+11

"git revert "은 작업 복사본을 해당 버전으로 복원하는 대신 태그가있는 커밋의 변경 사항을 되돌립니다. – Matt

+0

또한 untracked/unversioned 파일을 제거하려면 https://stackoverflow.com/a/912737/923560을 따르십시오. – Abdull

7

사용 git reset :

git reset --hard "Version 1.0 Revision 1.5" 

은 (지정된 문자열이 태그가 있다고 가정).

관련 문제