폴더를 삭제하면git 저장소에 문제가 발생할 수 있습니다. 모든 커밋 기록을 삭제하고 싶지만 코드는 현재 상태로 유지하려면 다음을 시도하세요.
# Check out to a temporary branch:
git checkout --orphan TEMP_BRANCH
# Add all the files:
git add -A
# Commit the changes:
git commit -am "Initial commit"
# Delete the old branch:
git branch -D master
# Rename the temporary branch to master:
git branch -m master
# Finally, force update to our repository:
git push -f origin master
이렇게 하면 이전 커밋 기록이 유지되지 않습니다.하지만 이것이 작동하지 않으면 아래의 다음 방법을 시도해 보세요.
두 번째 방법
# Clone the project, e.g. `myproject` is my project repository:
git clone https://github/heiswayi/myproject.git
# Since all of the commits history are in the `.git` folder, we have to remove it:
cd myproject
# And delete the `.git` folder:
git rm -rf .git
# Now, re-initialize the repository:
git init
git remote add origin https://github.com/heiswayi/myproject.git
git remote -v
# Add all the files and commit the changes:
git add --all
git commit -am "Initial commit"
# Force push update to the master branch of our project repository:
git push -f origin master
참고:GitHub 계정의 자격 증명을 제공해야 할 수도 있습니다.
오류
! [remote rejected] master -> master (pre-receive hook declined) 오류가 발생할 경우가 존재합니다. 이는 Protected branches의 정책으로, Git Repository를 생성할 때 기본적으로 Maintainer에게만 push 권한이 부여되고 Developer에게는 권한이 부여되지 않아 발생된 부분으로, Settings에서 권한 재설정으로 push가 되도록 문제를 해결할 수 있습니다.