Git의 분기에서 커밋 제거
대규모 프로젝트 작업을 시작할 때 분기의 일부를 업데이트, 제거 또는 추가해야 하는 상황에 자주 직면합니다. 개발 기간이 엄격한 기한과 함께 더 긴 기간에 걸쳐 확장되는 경우 커밋 메시지의 유지 관리가 팀에 장애물이 될 수 있습니다.
따라서 간결한 커밋 기록의 유지 관리를 더 간단하게 만들기 위해 이 기사에서 Git으로 작업하는 동안 겪을 수 있는 몇 가지 일반적인 조건의 사용법을 배울 것입니다.
Git은 브랜치에서 이전 커밋을 삭제하는 몇 가지 명령을 제공합니다. 사용 가능한 전략 및 명령은 이 문서의 아래에 설명되어 있습니다.
Git에서 브랜치에서 커밋을 삭제하거나 제거하는 몇 가지 방법이 있습니다. 첫 번째 단계는 커밋을 저장소에 푸시했는지 여부에 따라 시나리오에 가장 적합한 트릭을 정렬하는 것입니다.
이 작업을 수행하기 전에 이러한 명령을 실행하면 작업 디렉토리 변경 사항이 삭제됩니다. 또한 향후 저장소에 갖고 싶은 변경 사항을 별도로 저장하기 위해 git reset
은 작업 디렉토리를 지정된 커밋으로 재설정하는 명령입니다.
Git의 리포지토리에 푸시되지 않은 경우 변경 사항 제거
변경 사항을 리포지토리에 푸시하지 않은 시나리오에서는 다음 명령이 사용됩니다.
git reset --hard HEAD~1
이것은 모든 작업 디렉토리 변경 사항을 제거하고 HEAD를 HEAD 이전의 커밋으로 이동합니다.
특정 커밋까지 위쪽 방향으로 커밋을 삭제해야 한다고 가정합니다. 이 경우 명령줄에서 git log
명령을 실행하여 특정 커밋 ID를 찾은 다음 다음을 실행합니다.
git reset --hard <sha1-commit-id>
이것은 모든 작업 디렉토리 변경 사항을 생략하고 HEAD를 선택한 커밋으로 이동합니다.
Git의 리포지토리에 푸시된 경우 변경 사항 제거
다른 시나리오에서는 이미 변경 사항을 푸시한 경우 다음 명령을 실행해야 합니다.
git push origin HEAD --force
다른 사람들이 해당 분기를 가져온 경우 최신 분기부터 시작하는 것이 좋습니다. 다른 사람이 끌어올 때 이것을 수행하지 않으면 작업에 결합되고 다시 한 번 밀어 올립니다.
삭제한 커밋을 찾아야 하는 상황이 발생하면 저장소에 가비지 수집이 없는 한 git reflog
에 있습니다.
삭제된 커밋 제거
브랜치에서 삭제된 커밋을 제거하려면 다음 명령을 사용할 수 있습니다.
git reset --soft HEAD^
이 명령은 이전 커밋의 모든 변경 사항을 되돌리거나 재설정하고 저장소의 새 커밋으로 다시 가져옵니다.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn