git 으로 처음 프로젝트를 만들다 보니 처음 repository 를 만들때 바이너리 파일들을 몽땅 집어넣고 commit하는 실수를 하고 말았다.
그래서 다시 git rm 으로 debug 폴더를 지우고 다시 commit 을 해보았는데 로컬에서는 지워져도 다시 clone 하면 용량이 수십 MB가 되는 현상이 벌어진다.
이것은 git 안에 history를 모두 갖고 있기때문에 발생하는 현상이다. 이때는 history 를 모두 지워야 한다.
예를들어 나의 repository의 branch가 이렇게 되어있는 경우
g - k
/
a - b - d - f - i - j
\
h
f 이전까지의 모든 history를 제거하고 싶다면 일단 f까지만의 depth(여기서는 3)를 포함하는 repository를 가져와야 한다.
$ git clone "address to .git" --depth=3 #f까지의 history 를 포함하는 repository 를 가져온다.
$ git checkout --orphan TEMP_BRANCH #이 repository를 외톨이가 된 임시 브랜치로 체크아웃 한다.
$ git add -A #현재 repository의 모든 파일을 git로 추가한다.
$ git commit -am "Initial Commit" #여기부터를 "initial commit"으로 커밋한다.
$ git branch -D master #오래된 branch 를 제거한다.
$ git branch -m master #임시 브랜치를 master로 만든다.
$ git push -f origin master #강제로 Repository를 업데이트한다. (다시 되돌릴 수 없으므로 주의)
이렇게 하면 기존의 history 를 제거하고 다시 시작할 수 있다.
단 이렇게 하면 그 전으로 절대 되돌릴 수 없으므로 주의한다.
'Computer > git' 카테고리의 다른 글
git Submodule 사용하기 (0) | 2019.01.16 |
---|---|
git 디렉토리 복사 후 복구 (0) | 2018.10.10 |
git 에 사용자 정보 입력하기 (0) | 2018.03.29 |
git 에서 새로운 브랜치 만들기 (0) | 2018.02.02 |