목차
Commit에서 파일을 우아하게 삭제하는 방법은 무엇입니까?
개발 도구 자식 git에서 커밋 파일을 삭제하는 방법

git에서 커밋 파일을 삭제하는 방법

Apr 17, 2025 am 10:54 AM
git 지역 창고

GIT는 Commit에서 파일을 직접 수정하고 직접 작업 영역을 직접 수정하고 GIT 필터 브랜치를 사용하여 작업 영역 파일을 직접 수정하고 (권장되지 않음, 수정을 남기지 않음) GIT 리바이스를 사용하여 GIT 리베이스 -I를 사용하여 이전의 커밋을 변경하지 않음)를 사용하여 GIT 필터 브랜치를 사용하여 (권장하지 않음, 수정을 남기지 않음) (CONCITE를 변경하지 않음) (COMPITION 히스토리)를 사용합니다. 불필요한 파일이 커밋되지 않습니다.

git에서 커밋 파일을 삭제하는 방법

Commit에서 파일을 우아하게 삭제하는 방법은 무엇입니까?

코드 라이브러리에 커밋 한 후에는 없어야하는 파일을 찾은 적이 있습니까? 아니면 민감한 정보를 제출 했습니까? 당황하지 말고 GIT는이 문제를 해결하는 다양한 방법을 제공하지만 선택하는 방법은 달성하려는 효과와 역사에 첨부하는 중요성에 달려 있습니다. 역사를 간단하고 대략적으로 다시 작성하는 것은 좋은 생각이 아니며, 당신이하고있는 일을 잘 알지 못하면 팀워크의 혼란을 초래할 수 있습니다.

가장 직접적이지만 일반적으로 최상의 솔루션은 아닙니다. 작업 공간 파일을 직접 수정 한 다음 다시 제출하십시오. 단순하고 조잡하지만 흔적의 흔적을 남기고 여러 사람이 함께 일하면 재앙입니다.

수술 절차와 같이 원치 않는 파일을 정확하게 제거하고 역사에 미치는 영향을 최소화하는 몇 가지 더 미세한 접근 방식으로 뛰어 들어 봅시다.

git filter-branch 의 힘을 이해하십시오 (주의해서 사용하십시오!)

git filter-branch 는 히스토리를 재 작성하기위한 GIT에서 가장 강력한 도구로서 파일 삭제를 포함하여 과거 커밋에서 모든 것을 수정할 수 있습니다. 그러나 이것은 GIT 기록을 다시 작성할 것이며 , 코드를 원격 저장소로 푸시하면 팀에게 큰 문제가 발생할 수 있습니다. 당신이 매우 확신하고 백업이 없다면 쉽게 시도하지 마십시오.

예를 들어, 모든 COMMITS에서 secret.txt 라는 파일을 삭제한다고 가정 해 봅시다.

 <code class="bash">git filter-branch --index-filter 'git rm --cached --ignore-unmatch secret.txt' --prune-empty --tag-name-filter cat -- --all</code>
로그인 후 복사

이 명령 줄은 모든 커밋을 통해 반복하고, secret.txt 삭제 한 다음 빈 커밋을 지우고 마지막으로 태그를 업데이트합니다. --ignore-unmatch 파일이 존재하지 않기 때문에 오류를 피합니다. 그러나 이것은 완전히 새로운 역사를 만들 것이며 당신의 로컬 저장소는 새로운 독립형 지점이 될 것입니다. 원격 저장소의 이력을 포함하는 원격 저장소로 푸시 ( git push --force )를 강제로 강제로 사용해야하므로 주의해서 사용하십시오 !

더 안전한 방법 : git revert git rebase -i

직접 재 작성 기록과 비교할 때이 두 가지 방법은 더 안전하고 팀워크에 더 적합합니다.

git revert 이전의 역사를 바꾸지 않는 이전 커밋을 철회하겠다는 새로운 커밋을 만듭니다. 커밋에 추가 된 파일을 삭제하려면 먼저 git revert <commit-hash></commit-hash> 해당 커밋 취소를 취소 한 다음 필요에 따라 코드를 다시 제출할 수 있습니다. 이번에는 제출해서는 안되는 파일을 제외해야합니다. 이 방법은 깨끗하고 깔끔하며 역사를 엉망으로 만들지 않습니다.

git rebase -i 사용하면 커밋 기록을 대화식으로 수정할 수 있습니다. 이를 사용하여 커밋을 삭제하거나 커밋 정보를 수정할 수 있습니다. 이것은 또한 역사를 수정하므로 조심해야하며 다른 사람에게 영향을 미치지 않도록 현지 지점에서 운영하는 것이 가장 좋습니다. 인터랙티브 레바이스 모드로 들어간 후 삭제하려는 파일의 커밋 라인 전에 pick 변경 한 다음 작업 영역을 edit 한 다음 파일을 삭제 한 다음 git add . 그리고 git commit --amend 수정을 제출하고 마지막으로 Rebase 프로세스를 계속하기 위해 git rebase --continue . 이것은 git filter-branch 보다 더 세련되지만 여전히 신중하게 작동해야합니다.

모범 사례 : .gitignore 의 중요성

문제를 피하는 가장 좋은 방법은 문제를 예방하는 것입니다. 프로젝트 시작시 .gitignore 파일을 만들어 임시 파일, 컴파일 된 중간 파일, 민감한 정보 등과 같이 추적하지 말아야 할 모든 파일을 나열합니다. 이렇게하면 처음부터 불필요한 문서를 제출하여 많은 문제가 절약됩니다.

마지막으로, Git의 힘은 또한 당신의 일을 망칠 힘이 있다는 것을 의미합니다. 역사 수정을 수행하기 전에 저장소를 백업하고 사용중인 명령을 완전히 이해하십시오. 불필요한 번거 로움을 피하기 위해 시나리오에 맞는 메소드를 선택하십시오. Git의 다양한 명령을 마스터함으로써 버전 제어 세계에서 편안하게 할 수 있습니다.

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

GIT 프로젝트를 로컬로 다운로드하는 방법 GIT 프로젝트를 로컬로 다운로드하는 방법 Apr 17, 2025 pm 04:36 PM

GIT를 통해 로컬로 프로젝트를 다운로드하려면 다음 단계를 따르십시오. GIT를 설치하십시오. 프로젝트 디렉토리로 이동하십시오. 다음 명령을 사용하여 원격 저장소 클로닝 : git 클론 https://github.com/username/repository-name.git

git에서 코드를 업데이트하는 방법 git에서 코드를 업데이트하는 방법 Apr 17, 2025 pm 04:45 PM

GIT 코드를 업데이트하는 단계 : 코드 확인 : git 클론 https://github.com/username/repo.git 최신 변경 사항 가져 오기 : Git Fetch Merge 변경 사항 : GIT 병합 원산지/마스터 푸시 변경 (옵션) : Git Push Origin Master

git로 저장소를 삭제하는 방법 git로 저장소를 삭제하는 방법 Apr 17, 2025 pm 04:03 PM

git 저장소를 삭제하려면 다음 단계를 따르십시오. 삭제하려는 저장소를 확인하십시오. 로컬 리포지토리 삭제 : rm -rf 명령을 사용하여 폴더를 삭제하십시오. 원격으로 창고 삭제 : 창고 설정으로 이동하고 "창고 삭제"옵션을 찾은 후 작동을 확인하십시오.

Git에서 로컬 코드를 업데이트하는 방법 Git에서 로컬 코드를 업데이트하는 방법 Apr 17, 2025 pm 04:48 PM

로컬 git 코드를 업데이트하는 방법은 무엇입니까? Git Fetch를 사용하여 원격 저장소에서 최신 변경 사항을 가져옵니다. Git Merge Origin/& Lt; 원격 지점 이름 & gt; 합병으로 인해 발생하는 갈등을 해결합니다. git commit -m "merge branch & lt; 원격 브랜치 이름 & gt;" 병합 변경 사항을 제출하고 업데이트를 적용합니다.

git에서 코드를 병합하는 방법 git에서 코드를 병합하는 방법 Apr 17, 2025 pm 04:39 PM

GIT 코드 병합 프로세스 : 충돌을 피하기 위해 최신 변경 사항을 가져옵니다. 병합하려는 지점으로 전환하십시오. 병합을 시작하고 병합을 지정합니다. 병합 충돌을 해결하십시오 (있는 경우). 커밋 메시지를 제공하여 병합을 준비하고 커밋합니다.

Git Commit을 사용하는 방법 Git Commit을 사용하는 방법 Apr 17, 2025 pm 03:57 PM

Git Commit은 프로젝트의 현재 상태에 대한 스냅 샷을 저장하기 위해 파일 변경을 GIT 저장소에 기록하는 명령입니다. 사용 방법은 다음과 같습니다. 임시 저장 영역에 변경 사항 추가 제출 메시지를 저장하고 종료하기 위해 간결하고 유익한 제출 메시지를 작성하여 제출을 완료하기 위해 제출물을 완료하십시오. 제출자에 서명을 추가하여 제출 내용을보기 위해 GIT 로그를 사용하십시오.

GIT 다운로드가 활성화되지 않은 경우해야 할 일 GIT 다운로드가 활성화되지 않은 경우해야 할 일 Apr 17, 2025 pm 04:54 PM

해결 : GIT 다운로드 속도가 느리면 다음 단계를 수행 할 수 있습니다. 네트워크 연결을 확인하고 연결 방법을 전환하십시오. GIT 구성 최적화 : 포스트 버퍼 크기를 늘리고 (GIT 구성-글로벌 http.postBuffer 524288000) 저속 제한 (git config --global http.lowspeedlimit 1000)을 줄입니다. git 프록시 (예 : git-proxy 또는 git-lfs-proxy)를 사용하십시오. 다른 git 클라이언트 (예 : Sourcetree 또는 Github 데스크탑)를 사용해보십시오. 화재 보호를 확인하십시오

PHP 프로젝트에서 효율적인 검색 문제를 해결하는 방법은 무엇입니까? Typesense는이를 달성하는 데 도움이됩니다! PHP 프로젝트에서 효율적인 검색 문제를 해결하는 방법은 무엇입니까? Typesense는이를 달성하는 데 도움이됩니다! Apr 17, 2025 pm 08:15 PM

전자 상거래 웹 사이트를 개발할 때 어려운 문제가 발생했습니다. 대량의 제품 데이터에서 효율적인 검색 기능을 달성하는 방법은 무엇입니까? 기존 데이터베이스 검색은 비효율적이며 사용자 경험이 좋지 않습니다. 일부 연구 후, 나는 검색 엔진 타입을 발견하고 공식 PHP 클라이언트 Typeense/Typeense-PHP를 통해이 문제를 해결하여 검색 성능을 크게 향상 시켰습니다.

See all articles