문제

할 수 있는 방법에 대해 이동 회전시를 특정 git commit?

최고의 대답이 나를 사용하여 git revert X 시간에 도달할 때까지 원다.

이렇게 말하고 싶으로 되돌리려면 commit 는 20 커밋 old,나는 그것을 실행 20 시간.

이 있는 쉬운 방법이 있을까요?

나는 사용할 수 없습 다시 설정이기 때문에 저장소입니다.

도움이 되었습니까?

해결책

이 시도:

git checkout [revision] .

어디 [revision] Commit 해시입니다 (예 : : 예 : : 12345678901234567890123456789012345678ab).

잊지 마세요 . 결국, 매우 중요합니다. 이것은 전체 나무에 변경 사항을 적용합니다. GIT 프로젝트 루트 에서이 명령을 실행해야합니다. 하위 디렉토리에있는 경우이 명령은 현재 디렉토리의 파일 만 변경합니다. 그런 다음 커밋하면 좋을 것입니다.

당신은 이것을 취소 할 수 있습니다

git reset --hard 

작업 디렉토리 및 스테이징 영역에서 모든 수정 사항이 삭제됩니다.

다른 팁

특정 커밋으로 롤백하기 위해 :

git reset --hard commit_sha

롤백 10을 위해 다시 커밋됩니다.

git reset --hard HEAD~10

역사를 다시 쓰고 싶지 않은 경우 다음 게시물에서와 같이 "git revert"를 사용할 수 있습니다.

GIT 저장소를 이전 커밋으로 되돌리는 방법은 무엇입니까?

글쎄, 질문은 '롤백'이란 무엇을 의미합니까? 당신이 할 수 없다면 reset 공개적이고 커밋 역사를 그대로 유지하고 싶기 때문에 작업 사본이 특정 커밋을 반영하기를 원합니까? 사용 git checkout 그리고 커밋 해시.

편집 : 주석에서 지적한대로 사용 git checkout 지정을 지정하지 않으면 "분기 없음"상태에 남겨 둘 것입니다. 사용 git checkout <commit> -b <branchname> 지점에 체크 아웃하려면 git checkout <commit> . 현재 지점에 체크 아웃합니다.

원래 포스터 상태:

최고의 대답이 나를 사용하여 git revert X 시간까지 나 에 도달하다.

이렇게 말하고 싶으로 되돌리려면 commit 는 20 커밋 old,I'd 그것을 실행 20 시간.

이 있는 쉬운 방법이 있을까요?

나는 사용할 수 없습 리셋을 일으킬 이 repo 공개한다.

그것은 필요하지 않 사용 git revert X 다. git revert 을 받아들일 수 있다 커밋한 범위로 인수,그래서 당신은 그것을 사용할 필요가면으로 되돌리려면 범위 의가한다. 예를 들어,만약 당신이 되돌리려는 지난 20 커밋:

git revert --no-edit HEAD~20..

Commit 범위 HEAD~20.. 에 대한 짧 HEAD~20..HEAD, 와 의미에서 시작"20th 부모의 머리 commit 및 모두 되돌리기 커밋한 후에 그것을 머리".

는 것으로 되돌리는 지난 20 약 가정이 없는 사람들은 병합 가한다. 이 있는 경우에는 병합 커밋한 다음으로 되돌릴 수 없습니다 그들 모두가 하나의 명령에,당신을 되돌려야 하는 그들을 개별적으로

git revert -m 1 <merge-commit>

참고 또한 나를 사용하여 테스트 범위와 git revert git 을 사용하여 버전 1.9.0. 를 사용하는 경우 이전 버전의 git 을 사용하여,범위 git revert 또는 작동하지 않을 수 있습니다.

이 경우에, git revertgit checkout.

주는 것과는 달리 이에 응답하는 말을 사용하여 git checkout, git revert 실제로 제거하는 모든 파일에 추가되었나 투신 으로 복귀, 이는 올바른 방법으로 되돌리려면의 범위할 수 있습니다.

문서

1 단계: Commit의 페치 목록 :

git log

이 예제에서와 같이 목록을 얻을 수 있습니다.

[Comp:Folder User$ git log
commit 54b11d42e12dc6e9f070a8b5095a4492216d5320
Author: author <author@gmail.com>
Date:   Fri Jul 8 23:42:22 2016 +0300

This is last commit message

commit fd6cb176297acca4dbc69d15d6b7f78a2463482f
Author: author <author@gmail.com>
Date:   Fri Jun 24 20:20:24 2016 +0300

This is previous commit message

commit ab0de062136da650ffc27cfb57febac8efb84b8d
Author: author <author@gmail.com>
Date:   Thu Jun 23 00:41:55 2016 +0300

This is previous previous commit message
...

2 단계: 필요한 커밋 해시를 복사하여 결제를 위해 붙여 넣습니다.

git checkout fd6cb176297acca4dbc69d15d6b7f78a2463482f

그게 다야.

git read-tree -um @ $commit_to_revert_to

할 것입니다. "Git Checkout"이지만 헤드를 업데이트하지 않습니다.

동일한 효과를 얻을 수 있습니다

git checkout $commit_to_revert_to
git reset --soft @{1}

문자열 편의 명령을 함께 선호하는 경우.

이것들은 당신의 작업장과 원하는 상태에서 당신을 당신에게 남겨 둡니다. git commit 끝내기 위해.

무엇이 바뀌 었는지 잘 모르겠지만 옵션없이 특정 커밋을 체크 아웃 할 수 없습니다. --detach. 나를 위해 일한 전체 명령은 다음과 같습니다.git checkout --detach [commit hash]

분리 된 상태에서 돌아 오려면 현지 지점을 확인해야했습니다. git checkout master

프로젝트와 하루 정도 후에 일한다고 가정 해 봅시다. 하나의 기능이 여전히 오류를 제공하고 있음을 알 수 있습니다. 그러나 당신은 당신이 어떤 변화를했는지 모르겠습니다. 그로 인해 오류가 발생했습니다. 따라서 이전 작업 커밋을 낚시해야합니다. 특정 커밋으로 되돌려면 :

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 .

좋아, 그래서 그 커밋은 당신을 위해 일합니다. 더 이상 오류가 없습니다. 당신은이 문제를 정확히 지적했습니다. 이제 최신 커밋으로 돌아갈 수 있습니다.

git checkout 792d9294f652d753514dc2033a04d742decb82a5 .

오류가 발생하기 전에 특정 파일을 확인합니다 (내 경우에는 gemfile.lock을 사용합니다).

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 -- /projects/myproject/Gemfile.lock

그리고 이것은 나중에 오류를 깨닫지 않고 커밋에서 만든 오류를 처리하는 한 가지 방법입니다.

헤드 분리 모드를 원하십니까?

분리 된 헤드로 특정 커밋으로 X 시간을 롤백하려면 (아무것도 엉망이 될 수 없음) 다음을 사용하십시오.

(돌아가고 싶은 커밋 수로 X를 교체하십시오)

git checkout HEAD~X

즉, 한 커밋으로 돌아 가기 위해 :

git checkout HEAD~1

다음은 그렇게 할 예입니다

    cd /yourprojects/project-acme 


    git checkout efc11170c78 .

Github/Bitbucket/Gitlab의 Commits 섹션에서 각 커밋과 관련된 커밋 ID를 찾을 수 있습니다. 매우 간단합니다. 커밋 ID가 있다고 가정합니다 5889575 그런 다음 코드 에서이 부분으로 돌아 가려면 단순히 입력하면됩니다.

git checkout 5889575 .

코드에서 해당 시점에 도달합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top