728x90
Git 서버에서 'git push'로 푸시한 내용을 삭제하는 방법은 다음과 같습니다. 여기서는 특정 브랜치를 삭제하는 방법을 예로 들겠습니다.
1. 원격 브랜치 삭제
1. 원격 브랜치 확인
[bash]
git branch -r
2. 원격 브랜치 삭제
[bash]
git push origin --delete <브랜치명>
-예를 들어, 'feature-branch'라는 브랜치를 삭제하려면,
[bash]
git push origin --delete feature-branch
2. 특정 커밋 삭제 (리포지토리 이력 재작성)
만약 특정 커밋을 삭제하려는 경우, 이력 재작성이 필요합니다. 이는 매우 주의해서 사용해야 하며, 다른 협력자에게 영향을 줄 수 있습니다.
1. 로컬 리포지토리에서 이력 수정
[bash]
git rebase -i <커밋 ID>
여기서 '<커밋 ID>'는 수정하려는 커밋 이전의 커밋 ID입니다. 인터랙티브 리베이스 편집기에서 삭제하려는 커밋을 'drop'하거나 'd'로 표시합니다.
2. 강제로 원격 리포지토리에 푸시
[bash]
git push origin master --force
여기서 'master'는 수정된 브랜치 이름입니다.
3. 특정 파일 삭제
특정 파일을 리포지토리에서 완전히 삭제하려면 'git filter-branch'나 'BFG Repo-Cleaner'를 사용할 수 있습니다.
1. git filter-branch 사용
[bash]
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <파일 경로>' --prune-empty --tag-name-filter cat -- --all
2. BFG Repo-Cleaner 사용
[bash]
java -jar bfg.jar --delete-files <파일 이름> <리포지토리 경로>
이후, 다시 강제로 푸시합니다.
[bash]
git push origin --force --all
git push origin --force --tags
git push origin --force --tags
주의사항
- 이력 재작성이나 강제 푸시는 협력자에게 큰 영향을 줄 수 있으므로, 팀원들과 충분히 상의한 후에 수행하는 것이 좋습니다.
- 중요한 데이터는 백업해 두는 것이 좋습니다.
이 방법들을 사용하여 원격 Git 서버에서 불필요한 내용들을 삭제할 수 있습니다.
728x90
'프로그래밍 > Github' 카테고리의 다른 글
[github] 자주 사용하는 git 명령어 모음 (0) | 2024.06.12 |
---|---|
[github] git에서 특정 commit을 로컬에 불러오는 방법 (0) | 2024.06.12 |
[github] git을 처음 시작하는 사람들을 위한 글 (0) | 2024.06.12 |
[github] 코드 작업 후 git 저장소에 업로드하기 (0) | 2024.06.11 |
[github] git 가장 최신 파일로 완전히 불러오기 (0) | 2024.06.11 |