간단한 4단계로 git 저장소 기록에서 실수로 푸시된 파일 제거
단순히
rm
파일을 삭제하는 것만으로는 충분하지 않습니다. git은 프로젝트의 루트에 있는 .git
디렉토리에 모든 분기의 모든 기록을 영원히 기록합니다.1단계: 리포지토리를 백업하세요!
프로젝트 디렉토리를 복사하기만 하면 됩니다.
cp -r myproject backup
2단계: 새 파일을 도입한 커밋 식별
가장 쉬운 방법은
git log
실행이라는 파일을 삭제한다고 가정하고 client/public/favicons/red/hugefile.ova
명령의 출력을 보는 것입니다.$ git log client/public/favicons/red/hugefile.ova
Sat Aug 17 19:16:17 2019 +0300 7ff66fa Add favicons [Moshe Zada]
보시다시피 커밋
7ff66fa
이 큰 파일을 도입한 것 같습니다. 역사를 다시 쓰자!3단계: 과거로 돌아가기
이제 다시 돌아가고 싶은 커밋을 찾았으니 다음을 실행합니다.
git rebase --interactive 7ff66fa~1
이 명령을 실행한 직후 편집기는 7ff66fa에서 마지막 커밋까지의 커밋 기록과 함께 열립니다. 예를 들면 다음과 같습니다.
pick 7ff66fa Add favicons
pick 48d9cc0 Readme (#84)
pick b9f23fd GitBook: [master] 17 pages modified
pick 1e0f4f1 move to docs
pick 23adabf GitBook: [master] 4 pages modified
pick 237c792 revert readme
pick 9418698 Continue reload if had exception
pick 3723c3c Add Copy option to index
pick 1ff0ec1 Add filter for manage aliases
pick 8a8770d Better null message
pick 4d8b64c Subscribe to input change
pick 9bc31b6 Save more data for node stats
pick 546e10b Small fixes
# Rebase 5058e82..eafa06e onto 5058e82 (193 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
git commit으로 시작하는 첫 줄로 이동하여 첫 번째 단어를 문자 e로 변경하여 편집(vimmiers:
cwe<ESC>
)하고 편집기를 종료합니다(:wq
)4단계: 기록 다시 작성 및 변경 사항 푸시
이제 git은 마지막 커밋을 재생하기 시작하고 잘못된 커밋 직전에 쉘을 제공합니다.
파일을 삭제하십시오:
rm client/public/favicons/red/hugefile.ova
변경 사항을 git에 추가git add client/public/favicons/red/hugefile.ova
리베이스 커밋 및 계속git commit --amend '-S' && git rebase --continue
변경 사항 확인 및 변경 사항 푸시지적해 주신 Joe와 Eugene에게 감사드립니다
git push --force
. 주의해서 사용해야 합니다.git push -f 이것에 주의하십시오. -f는 힘을 나타냅니다. 기본적으로 git은 기록을 다시 쓰려고 하면 불평하지만 어쨌든 강제로 갈 수 있습니다. 당신이 단독 프로젝트에 있다면 이것은 괜찮을 것입니다. 그러나 당신이 팀에서 일하고 있다면 아무도 브랜치를 뽑고 그 위에 커밋을 추가하지 않았는지 확인하십시오. 당신은 그들에게 어떤 호의도 베풀지 않을 것입니다.
그것을 사용하는 것을 두려워하지 마십시오. 수행 중인 작업에 대해 팀과 소통해야 합니다.
git push --force
그게 다야 🙂
이 게시물이 유용했습니까? 내 Github 프로젝트에 별⭐️ 추가🙂
모세 / Elasticsearch 동지
운영 및 모니터링을 위해 구축된 Elasticsearch 관리 패널
Elasticsearch 동지
Elasticsearch Comrade는 Cerebro에서 크게 영감을 받은 오픈 소스 Elasticsearch 관리 및 모니터링 패널입니다.
python3, VueJS, Sanic, Vuetify2 및 Cypress로 구축된 Elasticsearch Comrade
주요 특징
빠른 시작
정의 클러스터
Comrade는 --clusters-dir
매개변수를 사용하여 클러스터를 발견합니다. 문서는 here, 예는 here입니다.
도커 사용(권장)
docker run -v $PWD/clusters/:/app/comrade/clusters/ -it -p 8000:8000 mosheza/elasticsearch-comrade
파이썬 패키지 사용
pip install elasticsearch-comrade
comrade --clusters-dir clusters
설치, 구성 및 다음 단계
Here
로드맵
v1.1.0
Python 패키지 추가
재색인 화면
동지 대시보드
v1.2.0
Here
로드맵
v1.1.0
Python 패키지 추가
재색인 화면
동지 대시보드
v1.2.0
v1.3.0
스크린샷
View on GitHub
Reference
이 문제에 관하여(간단한 4단계로 git 저장소 기록에서 실수로 푸시된 파일 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/moshe/remove-accidentally-pushed-file-from-a-git-repository-history-in-4-simple-steps-18cg
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(간단한 4단계로 git 저장소 기록에서 실수로 푸시된 파일 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moshe/remove-accidentally-pushed-file-from-a-git-repository-history-in-4-simple-steps-18cg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)