git filter-branch -f --prune-empty --index-filter "git rm -r --cached --ignore-unmatch path/fileName" HEAD
이걸로 해결하였다..
참고로 path는 다음과 같이 지정해주었다.
./filefolder/fileName
*나는 ./ 이걸 안써줘서 시간을 좀 날렸다..
이런 방식으로..
모든 커밋에서 해당 파일과 관련된 모든 정보를 지우는 명령어이다.
이렇게 수정 후 원격 저장소에 force 옵션으로 push해주면 된다.
상세한 정보는 GPT한테 물어봤다.
-f 또는 --force: 필요한 경우 덮어쓰기를 강제합니다. 이 옵션을 사용하면 기존에 filter-branch에서 만들어진 백업이나 임시 파일을 덮어쓰기할 수 있습니다.
--prune-empty: 이 옵션은 빈 커밋을 삭제합니다. 특정 파일을 삭제하고 커밋 히스토리에서 해당 파일이 포함된 커밋만 남은 경우, 이 옵션을 사용하여 해당 커밋들을 삭제합니다.
--index-filter: 이 옵션은 각 커밋에 대해 인덱스를 변경하는 명령을 지정합니다. 여기서는 git rm -r --cached --ignore-unmatch path/fileName 명령을 사용하여 특정 파일을 삭제합니다.
git rm -r --cached --ignore-unmatch path/fileName: 이 명령은 다음과 같은 역할을 수행합니다.
git rm -r: Git에서 파일을 삭제하는 명령입니다. -r 옵션은 재귀적으로 디렉토리와 하위 디렉토리를 삭제합니다.
--cached: 인덱스에서만 파일을 삭제합니다. 작업 디렉토리에 있는 실제 파일은 삭제되지 않습니다.
--ignore-unmatch: 삭제할 파일이 존재하지 않더라도 오류를 발생시키지 않습니다.
'💻 CS > Git' 카테고리의 다른 글
[Git] Git push f옵션 (0) | 2024.03.24 |
---|