>  기사  >  개발 도구  >  Github에서 커밋을 삭제하는 방법

Github에서 커밋을 삭제하는 방법

PHPz
PHPz원래의
2023-04-06 12:48:141804검색

프로그래머가 Github 사용에 점점 더 능숙해짐에 따라 다양한 문제에 직면할 수 있습니다. 그 중 커밋을 삭제하는 것은 일반적인 문제 중 하나입니다. 이 기사를 작성하기 전에 커밋 삭제 프로세스를 더 잘 이해하기 위해 몇 가지 Git 기본 사항을 알아야 합니다.

Git은 분산 버전 제어 시스템(DVCS)입니다. 여러 사람이 동일한 프로젝트에서 작업할 수 있도록 해줍니다. 누구나 코드를 변경하고 변경 사항을 공유 저장소에 푸시할 수 있습니다. 모든 사람이 변경 사항을 공유 코드 베이스에 병합하려고 할 때 Git의 중요한 구성 요소인 분기(branch)가 유용합니다. 각 브랜치는 독립적인 레코드이며 commit 명령을 통해 변경 사항을 추가할 수 있습니다. commit 명령은 변경 사항을 Git의 로컬 데이터베이스에 저장하고 SHA-1 해시를 식별자로 할당합니다.

Git에서 커밋을 삭제하는 것은 일반적인 작업이 아닙니다. 왜냐하면 각 커밋은 Git 데이터베이스의 독립적인 기록이기 때문입니다. 각 변경 사항은 변경 사항의 차이가 아닌 변경 불가능한 "스냅샷"입니다. 따라서 커밋을 제거하면 다른 사람의 커밋 기록이 파괴되어 공유 라이브러리를 사용할 수 없거나 병합이 불가능해질 수 있습니다. 따라서 커밋을 제거하려면 코드 베이스를 손상시키지 않고 커밋을 실행 취소하는 방법에 집중하세요.

먼저 모든 로컬 변경 사항을 취소하고 현재 브랜치의 콘텐츠를 덮어쓰려면 다음 명령을 사용할 수 있습니다.

git reset --hard HEAD

이 명령은 HEAD 포인터(즉, 현재 브랜치의 최신 커밋)를 가리킵니다. commit 을 지정하고 작업 트리와 스테이징 영역을 커밋으로 롤백합니다. 또한 커밋되지 않은 모든 변경 사항이 지워집니다. 그러나 이렇게 하면 모든 로컬 변경 사항이 삭제되고 모든 변경 사항을 덮어쓰게 됩니다. 여전히 일부 변경 사항을 유지하려면 먼저 저장하고 이 명령을 사용하여 이전 커밋으로 돌아가야 합니다(예: 'git Reset --hard HEAD~2').

두 번째로 커밋을 취소하고 모든 로컬 변경 사항을 그대로 유지하려는 경우 다음 명령을 사용할 수 있습니다.

git reset HEAD~

이 명령은 HEAD 포인터를 상위 노드로 가리키지만 작업 트리는 변경하지 않습니다. 실행 취소 커밋은 작업 트리 및 스테이징 영역 외부에 유지됩니다. 계속해서 파일을 편집하고 변경 사항을 새 커밋으로 제출할 수 있습니다.

마지막으로 변경 사항을 공유 라이브러리에 푸시하고 커밋을 삭제하려면 다음 명령을 사용하세요.

git revert <commit的SHA-1值>

이 명령은 지정된 커밋을 실행 취소하고 지정된 커밋을 실행 취소하는 새 커밋을 생성합니다. 여러 커밋을 지정한 다음 실행 취소 커밋을 병합하여 더 나은 조합을 얻을 수 있습니다.

Git에서 커밋을 삭제할 때 염두에 두어야 할 몇 가지 사항이 있습니다. 먼저, 로컬 저장소나 공유 라이브러리에 변경 사항을 추가하기 전에 신중하게 생각하십시오. 커밋은 변경할 수 없으며 커밋을 제거하면 더 큰 혼란이 발생할 수 있습니다. 둘째, 특히 공유 코드 베이스에서 Git 명령을 사용할 때 주의하세요. 이러한 명령을 잘못 사용하면 병합할 수 없는 충돌이 발생하거나 복구할 수 없는 데이터가 손실될 수도 있습니다. 마지막으로, 변경으로 인해 원하지 않는 영향을 방지하려면 변경하기 전에 데이터를 백업하는 것이 좋습니다.

커밋 삭제는 Git에서 가장 까다로운 작업 중 하나일 수 있습니다. 하지만 몇 가지 기본 사항을 이해하고 주의 깊게 접근한다면 다른 사람의 커밋 이력을 파괴하지 않고 작업을 성공적으로 완료할 수 있을 것입니다.

위 내용은 Github에서 커밋을 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.