오랜만에 작성하는 벨로그..
github을 통하여 형상관리를 하던 소스코드를 public으로 변경해야 하는 일이 생겼다.
보안적으로 공개되면 안되는 소스코드를 어떻게할지 열심히 구글링 하다 찾은 방법
git-filter-repo를 통해 history를 지울 수 있었다.
바쁘니 본론만 바로
일단 window에서 사용하려면 scoop을 설치해야했다.
scoop 설치 방법은 powerShell을 통해 아래와 같이 입력한다
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"):
Y 입력
irm get.scoop.sh | iex
scoop 설치 완료
scoop install main/git-filter-repo
기존에 사용하던 repo 에서 바로 실행하지 않고 따로 clone을 받은 후 작업하였다.
git filter-repo --use-base-name --path [FILENAME] --invert-paths
위의 코드에서 FILENAME을 변경하여 사용하면된다.
코드가 정상작동 하였다면 푸쉬를 해야하는데
git remote add origin [git URL]
새로 clone을 받았기 때문에 원격 저장소를 다시 지정해주고
git push origin main
푸쉬를 시도한다.
기본적으로 사용하던 repo에 push를 시도하면 아래와 같은 오류가 날 것이다.
Updates were rejected because the tip of your current branch is behind its remote..
이럴경우 아래와 같이 시도하면 성공
git push origin +main
혹시 모든 자료가 날라갈 수 있으니 백업은 필수다