2014-04-06 2 views
1

나는 커밋 (커밋 # 1)에서 후퇴했지만, 그 후에 커밋이 필요하다는 것을 깨달았다.
그래서 커밋 # 1을 확인했습니다. 자, 어떻게이 버전을 브랜치의 끝으로 되돌릴 수 있습니까?백 아웃에서 퇴장하는 방법은 무엇입니까?

+0

"취소"란 무엇을 의미합니까? 즉 실행 한 Git 명령의 순서는 무엇입니까? –

+0

@OliCharlesworth는 결코 신경 쓰지 않고 해결책을 찾았습니다. 여기에 : http://stackoverflow.com/questions/927358/how-to-undo-the-last-git-commit?rq=1 –

답변

2

다른 작업을 수행하지 않은 경우 해당 커밋에서 현재 분기를 재설정하면됩니다.

git checkout yourBranch 
git reset --hard <sha1> 

OP Barnabas Szabolcs 또한 의견으로 권고 :

git reset --soft @^ 

작업 트리와 인덱스를 유지 할 수 있도록 할

(의 (최근의 자식으로, @는 HEAD의 별칭입니다) 체크 아웃 된 커밋의 내용을 그대로 유지하면서 새로운 커밋을 만들기 위해 HEAD를 이전 커밋으로 재설정하는 동안). 다른 커밋을 수행 한 경우

, 당신은 현재 브랜치에 커밋 체리 - 선택해야합니다 : 그것은 리드로 어떤 경우

git checkout yourBranch 
git cherry-pick <sha1> 

, 기존의 체크 아웃 자체 커밋은 위험하다 분리 된 HEAD 상황 (뒤에는 git reset ---soft HEAD^이 붙은 경우 제외).

+0

Thx, 그것은 자식 재설정과 함께 작동합니다 - 소프트 'HEAD ^' –

+0

@ BarnabasSzabolcs 과연. 나는 그것을 더 많은 가시성을 위해 대답에 포함 시켰습니다. – VonC

관련 문제