일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- restapi
- wss 파싱
- c# 클로저
- multipart/form-data
- url파싱
- 정처기 실기
- HeidiSQL
- WinForms
- MFC
- C#
- Telerik
- drop
- show
- Git
- IndexOutOfRangeException
- git commit vi
- MariaDB
- 정보처리기사 실기
- create
- c# for
- POST
- UI
- 정보처리기사
- VisualStudio2019
- postgresql
- url 파싱
- 정처기
- System.IndexOutOfRangeException
- 프로토타입
- C# sprintf
- Today
- Total
달짱달짱
[Git] git 저장소에서 완전히 삭제하기 본문
일반적으로, git 에서 파일을 delete(rm) 하는 것이 아닌
이미 git 에 push 되어 remote 에 올라간 파일 자체를 git 저장소에서 아예 삭제 하는 방법
1. git bash 열기
2. 해당 branch 가 HEAD 와 연결되어 있지 않는 경우에 HEAD 를 (해당브랜치) 로 옮긴다.
git remote set-head origin [해당 브랜치(예:develop)]
3. 파일들을 삭제한다.
git filter-branch --tree-filter 'rm -rf [삭제하고자 하는 경로(예: src/*.cpp)]' HEAD
git filter-branch --prune-empty -f HEAD
4. TortoiseGit 의 Sync 메뉴로 --force push 한다.
** 기존에 해당 브랜치의 해당 커밋을 pull 받았던 경우, 파일 삭제 후 pull 받게 되면 merge 오류가 발생한다. 이를 해결 하기 위해 아래와 같이 진행이 필요하다.
1) master 브랜치로 switching
2) heads 에서 기존 브랜치를 삭제 (delete branch)
3) pull 을 받고 정상완료
4) remote/develop 브랜치로 switching (heads 에 새롭게 create)
5) git 저장소에서 사라진 파일 확인
** 이와 같은 경우, 삭제하고자 하는 파일만 저장소에서 삭제 되고, 올려두었던 커밋은 그대로 유지된다. 따라서, 용량이 큰 파일을 실수로 잘못 올렸다던가 하여 git 저장소의 용량을 차지 하게 된 경우 위 방법을 이용하여 삭제 할 수 있다.
'Git' 카테고리의 다른 글
[Git] 머지 되돌리기 (0) | 2023.04.03 |
---|---|
[Git] 커밋 메시지 vim 편집기 이용해서 올리기 (0) | 2023.03.07 |
[Git] 자주 쓰는 Git 명령어 (0) | 2023.01.25 |