programing

Github과 로컬에서 마지막 n개의 커밋을 삭제하는 방법은 무엇입니까?

closeapi 2023. 7. 15. 10:09
반응형

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

반응형