최근에는 강력한 버전 제어 도구인 Git이 개발 팀 사이에서 점점 인기를 얻고 있습니다. 하지만 Git을 사용하다 보면 가끔 잘못된 커밋이 나타날 수 있고, 이러한 커밋이 프로젝트에 부정적인 영향을 미칠 수도 있습니다. 이러한 기록 커밋을 삭제하는 방법은 Git 사용자가 자주 직면하는 문제가 되었습니다. 이 문서에서는 Git에서 기록 커밋을 삭제하는 방법을 자세히 설명합니다.
1. Git 제출 내역
Git 제출 내역은 여러 개의 제출로 구성됩니다. Git에서 커밋을 할 때마다 새로운 커밋이 생성됩니다. 각 제출물에는 자체 식별자(SHA)가 있으며 제출물 작성자, 날짜, 제출물 설명 등의 정보가 포함되어 있습니다.
Git 명령줄이나 Git 클라이언트 도구를 통해 Git의 커밋 기록을 볼 수 있습니다. 예를 들어 Git 명령줄에서 다음 명령을 사용하면 이 프로젝트의 커밋 기록을 볼 수 있습니다.
git log
이 명령은 현재 브랜치의 모든 커밋을 역순으로 나열합니다. 각 커밋에는 자체 SHA, 커미터 이름과 이메일, 커밋 날짜, 커밋 메시지가 있습니다.
2. 과거 제출물을 삭제하는 이유
공동 개발 과정에서 잘못된 제출물이 발생하게 되는 많은 인적 요인이 있을 것입니다. "잘못된 제출물"은 오류, 보안 취약성, 민감한 정보 등을 포함할 수 있는 제출물입니다. 이러한 잘못된 커밋이 메인라인 브랜치에 병합되면 프로젝트의 다른 부분에 부정적인 영향을 미칠 수 있습니다.
또한, 비밀번호, API 키, 기타 민감한 정보 등 코드를 제출하기 전에 다른 사람에게 보여주고 싶지 않은 콘텐츠를 포함하는 경우 제출 후 노출될 수 있습니다. 현재로서는 제출 기록을 삭제하는 것이 사용자 개인정보를 보호하는 방법입니다.
3. Git에서 기록 커밋을 삭제하는 방법
Git에서는 기록을 다시 작성하는 방법과 Git의 필터링 메커니즘을 사용하는 두 가지 방법이 있습니다.
- 기록 다시 쓰기
기록 다시 쓰기는 실제로 기록 커밋을 수정하여 수행됩니다. 이는 이미 게시된 커밋을 변경하고 재배열하는 것을 의미합니다. Git 커밋 기록을 삭제하는 단계는 다음과 같습니다.
(1) 다음 명령을 사용하여 커밋 기록을 확인합니다.
git log
(2) 삭제하려는 커밋의 SHA를 찾아 기록합니다.
(3) 기록을 다시 쓰려면 다음 명령을 사용하십시오. 이 명령에서 SHA를 삭제하려는 커밋의 SHA로 바꿉니다.
git rebase -i SHA^
이 명령은 선택한 커밋의 마지막 커밋 이후 모든 커밋 목록이 포함된 편집기를 엽니다.
(4) 삭제하려는 커밋 앞의 "선택"을 "삭제"로 변경하거나 파운드 기호로 해당 줄을 주석 처리합니다. 편집기를 저장하고 닫습니다.
(5) 다음 명령을 실행하여 Git에서 커밋을 강제로 덮어씁니다.
git push --force
마지막으로 다음 명령을 사용하여 커밋 기록을 성공적으로 삭제했는지 확인할 수 있습니다.
git log
- Git 필터링 메커니즘 사용
In Git, filter-branch 명령은 커밋 기록을 삭제하는 데 도움이 될 수 있습니다. 이 명령은 전체 저장소를 복사하고 지정된 필터를 각 커밋에 적용합니다. 다음은 Git의 필터링 메커니즘을 사용하여 Git 커밋 기록을 삭제하는 단계입니다.
(1) 다음 명령을 사용하여 복사본 저장소를 만듭니다.
git clone --mirror <git></git>
(2) 다음 명령을 사용하여 복사본 저장소를 입력합니다.
cd <repository>.git</repository>
(3) 기록 커밋을 삭제하려면 다음 명령을 사용합니다.
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <filename>" --prune-empty --tag-name-filter cat -- --all</filename>
이 명령은
(4) 다음 명령을 사용하여 변경 사항을 Git 저장소에 푸시합니다.
git push --all --force
마지막으로 다음 명령을 사용하여 커밋 기록이 성공적으로 삭제되었는지 확인할 수 있습니다.
git log
IV 요약
기록을 사용하거나 Git의 필터링 메커니즘을 사용하면 Git에서 기록 커밋을 삭제할 수 있습니다. 그러나 커밋 기록을 삭제하기 전에 신중하게 생각하고 모든 팀원이 변경의 영향을 이해했는지 확인해야 합니다. 또한 저장소 오버헤드를 줄이기 위해 변경 사항을 병합하기 전에 Git 리포지토리를 정기적으로 정리해야 합니다.
위 내용은 git에서 기록 커밋을 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 GUI 도구 (Sourcetree, Gitkraken 등), 필수 명령 (Git Init, Git Clone, Git Add, Git Commit 등), 지점 관리 모범 사례 (기능 분기, 요청) 및 Merge Con에 대한 GIT 관리에 대한 안내서를 제공합니다.

이 안내서는 단일 git 커밋을 원격 브랜치로 밀리는 방법을 설명합니다. 임시 지점을 사용하여 커밋을 분리 하고이 지점을 리모콘으로 밀고 선택적으로 임시 지점을 삭제합니다. 이 방법은 충돌을 피하고

이 기사는 GIT 커밋 컨텐츠를보기위한 방법을 자세히 설명합니다. git show를 사용하여 커밋 메시지, 저자 정보 및 변경 (DIFF), 여러 Commit 'Diff에 대한 GIT 로그 -P를 표시하고 Commit을 직접 확인하는 것에 대한주의 사항에 중점을 둡니다. 대체

이 기사에서는 Git의 커밋과 푸시 명령의 차이점을 설명합니다. Git Commit은 로컬에서 변경 사항을 저장하는 반면 Git Push는 이러한 커밋 된 변경 사항을 원격 저장소에 업로드합니다. 이 기사는이 분류를 이해하는 것의 중요성을 강조합니다

이 기사는 일반적인 GIT 커밋 실패를 다룹니다. 추적되지 않은 파일, 무대 변경 변경, 충돌 병합 및 사전 커밋 후크와 같은 문제에 대한 문제 해결 단계에 대해 자세히 설명합니다. 더 부드러운 git wo를 보장하기 위해 솔루션 및 예방 조치가 제공됩니다.

이 기사에서는 Git에서 Git Add와 Git Commit의 뚜렷한 역할을 설명합니다. GIT는 단계 변경 사항을 추가하여 다음 커밋에 포함시킬 준비를하고 GIT Commit은 저장소의 역사에 대한 단계적 변경 사항을 저장합니다. 이 2 단계 프로세스가 가능합니다

이 초보자 안내서는 버전 제어 시스템 인 GIT를 소개합니다. 기본 명령 (Init, Add, Commit, Status, Log, Branch, Checkout, Merge, Push, Pull) 및 병합 충돌을 해결합니다. Clear Comm을 포함한 효율적인 GIT 사용을위한 모범 사례

이 기사는 분산 버전 제어 시스템 인 GIT를 소개합니다. 오프라인 기능 및 강화 된 협업을위한 효율적인 분기/병합과 같은 중앙 집중식 시스템에 대한 GIT의 장점을 강조합니다. 이 기사는 또한 학습 r


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
