Github과 로컬에서 마지막 n개의 커밋을 삭제하는 방법은 무엇입니까?
GitHub 저장소 중 하나에서 마지막 2개의 커밋을 삭제하려고 합니다.여기서 제안한 대로 시도해 보았습니다.git push -f origin HEAD^^:master
마지막 두 커밋이 제거되어 작동하는 것 같습니다.
그런 다음 로컬 저장소에서 삭제했습니다.git rebase -i HEAD~2
해당 커밋과 관련된 행을 제거하고 확인합니다.git log
올바르게 제거되었는지 확인합니다.
그런 다음 로컬 저장소를 변경하고 새 커밋을 수행한 다음 GitHub에 푸시합니다.문제는 제 GitHub 계정에 제가 삭제하려고 했던 두 가지 커밋이 있다는 것입니다.
문제는 로컬 저장소에 있다고 생각합니다. Github 저장소를 로컬에 복제하고 여기서 몇 가지 변경을 수행하면 새 커밋을 푸시할 때 이전 커밋이 GitHub에 푸시되지 않기 때문입니다.
마지막 두 커밋을 로컬에서 제거하려면 다음을 사용하는 것이 좋습니다.
git reset --hard HEAD^^
기본 재배치는 완전히 다른 작업이므로 여기서는 도움이 되지 않습니다.
마지막 2개의 커밋을 제거하려면 다음과 같은 간단한 명령을 사용할 수 있습니다.
git reset --hard HEAD~2
변경할 수 있습니다.2
제거할 마지막 커밋 수에 대해 선택합니다.
이 변경 사항을 원격으로 적용하려면 다음 작업을 수행해야 합니다.git push
힘으로 (-f
) 매개 변수:
git push -f
하지만, 저는 어떤 것도 추천하지 않습니다.git
와의 지휘권.-f
또는--hard
제거하려는 커밋 이후 원격(Github)에 대한 새 커밋이 있는 경우 관련 옵션.그런 경우에는 항상 다음을 사용합니다.git revert
.
다음은 저에게 적합합니다.
git reset HEAD~n
마지막을 제거합니다.n
로컬 레포의 커밋, as.HEAD^
하나만 제거합니다.원격에서 이러한 변경 사항을 제거해야 하는 경우 원격에서 강제로 푸시해야 할 수도 있습니다.
git push -f origin <branch>
변경 내용을 아직 푸시하지 않은 경우 명령을 입력합니다.
git reset --hard HEAD~n
변경 내용을 이미 푸시한 경우 다음 코드를 실행해야 합니다.
git push origin HEAD --force
마지막 커밋 제거
git에서 마지막 커밋을 제거하려면 다음을 실행하면 됩니다.
git reset --hard
HEAD^
위에서 여러 커밋을 제거하는 경우 실행할 수 있습니다.
git reset --hard HEAD~2
마지막 두 커밋을 제거합니다.더 많은 커밋을 제거하기 위해 수를 늘릴 수 있습니다.
커밋을 "커밋 해제"하지만 재작업을 위해 변경 사항을 유지하려면 다음을 제거합니다."--hard"
git reset HEAD^
분기 및 인덱스에서 커밋을 제거하지만 작업 트리는 그대로 둡니다.
새 지점 이름에 커밋을 저장하려면 다음을 실행합니다.
git 브랜치 새 브랜치 이름
Git Reset을 수행하기 전에.
답변 - 이 요지 답변이 도움이 되었습니다.
언급URL : https://stackoverflow.com/questions/10153486/how-to-delete-the-last-n-commits-on-github-and-locally
'programing' 카테고리의 다른 글
glib를 위한 "헬로 월드"를 구축할 수 없는 이유는 무엇입니까? (0) | 2023.07.20 |
---|---|
파이썬에서 빠르고 쉬운 파일 대화? (0) | 2023.07.20 |
Visual Studio 2010:솔루션에서 프로젝트 빌드 순서를 적용하는 방법은 무엇입니까? (0) | 2023.07.15 |
Android 목록 보기를 새로 고치는 방법은 무엇입니까? (0) | 2023.07.15 |
스프링 부트 2 - H2 데이터베이스 - @SpringBoot테스트 - org.h2.jdbc에서 실패했습니다.JdbcSQL 예외:테이블이 이미 있습니다. (0) | 2023.07.15 |