내 로컬 사본 이 해당 커밋에서 작성된 변경 사항을 유지 하지만 작업 사본에서 커밋되지 않은 변경 사항이 되도록 커밋을 되 돌리는 방법이 있습니까? 커밋을 롤백하면 이전 커밋으로 이동합니다. 변경 사항을 유지하고 싶지만 잘못된 브랜치에 커밋했습니다.
이것은 밀리지 않았으며 커밋되었습니다.
답변
예를 들어, 여러 가지 방법이 있습니다.
커밋을 아직 공개적으로 푸시 하지 않은 경우 :
git reset HEAD~1 --soft
즉, 커밋 변경 사항이 작업 디렉토리에있는 반면 LAST 커밋은 현재 분기에서 제거됩니다. git reset man 참조
경우에 당신은 한 ( ‘마스터’라는 분기)에 공개적으로 푸시 :
git checkout -b MyCommit //save your commit in a separate branch just in case (so you don't have to dig it from reflog in case you screw up :) )
커밋을 정상적으로 되돌리고 푸시
git checkout master
git revert a8172f36 #hash of the commit you want to destroy
# this introduces a new commit (say, it's hash is 86b48ba) which removes changes, introduced in the commit in question (but those changes are still visible in the history)
git push origin master
이제 작업 복사본에서 로컬 변경 사항을 적용하면서 변경 사항을 원한다면 ( “로컬 복사본이 해당 커밋에서 변경 사항을 유지하도록”) --no-commit
옵션을 사용 하여 되돌리기 커밋을 되 돌리십시오 .
git revert --no-commit 86b48ba (hash of the revert commit).
나는 작은 예를 만들었습니다 : https://github.com/Isantipov/git-revert/commits/master
답변
변경 사항을 적용한 경우 undo
다른 분기를 사용하지 않고 변경 사항을 적용 하고 파일을 다시 스테이지로 이동할 수 있습니다 .
git show HEAD > patch
git revert HEAD
git apply patch
마지막 분기 변경 사항이 포함 된 패치 파일을 만듭니다. 그런 다음 변경 사항을 되돌립니다. 마지막으로 패치 파일을 작업 트리에 적용하십시오.
답변
사례 : “이것은 푸시되지 않았으며 커밋되었습니다 .” – 당신이 사용하는 경우 인 IntelliJ (또는 다른 JetBrains의 IDE)을하고 아직 변경을 추진하지 않은 당신은 다음에 할 수 있습니다.
- 버전 관리 창 ( Alt + 9 / Command + 9 )- “로그”탭으로 이동하십시오.
- 마지막 커밋 전에 커밋을 마우스 오른쪽 버튼으로 클릭하십시오.
- 현재 분기를 여기로 재설정
- 소프트 선택 (!!!)
- 대화 상자 창에서 재설정 버튼을 누릅니다.
끝난.
변경 사항을 “커밋 해제”하고 git 상태를 마지막 로컬 커밋 이전 지점으로 되돌립니다. 변경 한 내용은 손실되지 않습니다.
답변
나와 함께 주로 잘못된 지점으로 변경 사항을 푸시하고 나중에 깨닫게됩니다. 그리고 다음과 같은 대부분의 시간에 작동합니다.
git revert commit-hash
git push
git checkout my-other-branch
git revert revert-commit-hash
git push
- 커밋을 되 돌리다
- 다른 지사를 생성 및 체크 아웃
- 되돌리기를 되돌리기
답변
이 명령을 별도의 폴더에서 실행하기 전에 변경 사항을 백업하십시오
자식 체크 아웃 branch_name
지점에서 결제
자식 병합-중단
병합 중단
자식 상태
병합 중단 후 코드 상태 확인
git reset –hard origin / branch_name
이 명령은 변경 사항을 재설정하고 코드를 branch_name (분기) 코드에 맞 춥니 다.
답변
2020 간단한 방법 :
git reset <commit_hash>
유지하려는 마지막 커밋의 해시를 커밋하십시오.