특정 git 커밋 제거하기
시나리오 A: 기능 분기에서 작업하고 나중에 특정 변경이 더 이상 관련이 없다는 것을 깨닫고 그러한 커밋/변경을 제거하려고 할 때.
시나리오 B: 작업 브랜치를 원격으로 푸시할 때 풀 요청을 생성하려고 할 때 브랜치를 비교하고 작업과 관련이 없는 커밋이 있다는 것을 깨달았습니다. 아마도 로컬 저장소가 동기화되지 않았기 때문일 수 있습니다.
어떻게 고치는 지 ?
시나리오 A의 경우 다음을 실행할 수 있습니다.
git revert <commit-hash>
여기서
<commit-hash>
대상 커밋 해시가 완료되었습니다.힌트, 다음을 실행하여 모든 커밋을 해시와 함께 나열할 수 있습니다.
git log --oneline
시나리오 B: 분기에서 여러 커밋/변경 사항을 제거해야 하는 경우 다음을 실행하여 대상 기본 분기와 대화식으로 리베이스할 수 있습니다.
git rebase -i <target-branch>
그러면 현재 작업 분기의 모든 커밋을 나열하는 열린 편집기가 생성됩니다.
힌트, rebase는 현재 변경 사항을 가져와 다른 분기 위에 쌓는 것을 수반하므로 원하는 커밋을 선택적으로 선택하고 다른 커밋을 거부할 수 있습니다.
편집기가 열리면 열린 편집기에서 단순히 레코드를 삭제하여 원하는 대로 특정 커밋을 제거할 수 있습니다. 편집기에 적용 가능한 명령에 대한 지침이 있습니다.
명령이 있는 열린 편집기는 다음과 같아야 합니다.
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
연습을 완료하고 편집기를 닫으면 리베이스가 자동으로 작동합니다.
그게 다야 재미있는 코딩!
Reference
이 문제에 관하여(특정 git 커밋 제거하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/segaz2002/getting-rid-of-specific-git-commits-2ob3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)