본문 바로가기

Dev/Git

(3)
Git 리파지토리에서 파일 완전 삭제 git 형상을 관리하다보면 실수로 넣지 말아야할 파일(민감정보가 들어간 설정파일이라거나..)들이 들어간뒤 remote에 push될 때가 있다. 이경우 해당 파일을 삭제하고 git내의 형상 로그에서 모두 지우고 remote 서버에까지 반영하고 싶을때 다음의 명령을 따른다. # foldername이라는 폴더를 모두 지우고 관련된 커밋 메시지도 처리. > git filter-branch --tree-filter 'rm -rf ./foldername' HEAD Rewrite ffc820911941f31ef6433439c6e582be2f87627d (99/103) (5 seconds passed, remaining 0 predicted) Ref 'refs/heads/master' wa..
Git 레파지토리 내에서 특정 파일을 삭제하고 싶을때.. Git 레파지토리에 들어가서는 안되는 파일이 계속 형상이 관리되고 있을때, 해당 파일을 지우고 싶다면, $ git rm --cached filename.ext 가끔 생각없이 커밋을 하다보면 DB의 접속정보라든가, API의 auth-key같은 민감정보들을 생각없이 함께 커밋을 할 때가 있다. 이경우 이전 git history에서도 모두 해당 파일의 변경 이력을 지워줘야 하는데, 그럴땐 아래와 같이.. $ git filter-branch --tree-filter 'rm -f filename.ext' HEAD
Start Git!!! C 기반의 펌웨어를 주 업으로 삼고 있던 동안은 나 혼자 모듈 하나를 맡아서 혼자 개발하고 혼자 유지보수를 하다보니 형상관리 Tool이라는 것을 쓸 일이 없었다.그냥 프로젝트 폴더에 날짜 붙여서 계속 복붙하며 리버전 해와도 전혀 문제가 없었고, SVN이라는 물건이 있는 것 정도만 알고 있었다. 그런데 작년부터 개발 업무가 웹 분야로 전환되면서 형상관리 Tool로 Git을 사용하기 시작했다. 요즘 형상관리의 대세는 Git이다.(라고 대부분들 말한다.) 기존 SVN을 사용하던 사람들은 Git을 사용하는데 어느정도의 진입장벽이라는게 존재한다고는 하지만, 난 처음 써본 형상관리 Tool이 Git이었기에... SVN과 어떤 차이가 있는지는 모르겠지만... SVN을 안써봤다고 해서 진입장벽이 낮지는 않은 것 같다...