본문 바로가기
프로그래밍/Github

[github] git push 한 내용을 git서버에서 삭제하는 방법

by iwbap 2024. 5. 20.
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 서버에서 불필요한 내용들을 삭제할 수 있습니다.

728x90