Git으로 프로젝트를 관리하다 보면 별도의 사이드 프로젝트를 브랜치로 관리하고 싶을 때가 있다. 이런 경우 별도의 Git 저장소를 만드는 것이 가장 좋다고 보지만 저장소를 만드는 것이 번거롭다거나(혹은 제약이 있다거나) 굳이 별도 저장소까지 할 일 정도는 아니면서 기존 프로젝트의 소스의 히스토리와는 전혀 관련이 없는 브랜치가 필요할 때가 있다. 예를 들면 프로젝트에서 임시로 사용할 API Mock 서버라든지 문서관리등을 따로 하고 싶을 때 등이다.
현재 소스에서 브랜치를 만들어서 파일을 모두 지워서 커밋을 한 뒤에 여기에 새로운 소스를 커밋해도 되기는 하지만 비어있는 브랜치를 만들 수 있다면 더 좋을 것이다.
위와 같은 저장소가 있을 때 기존 히스토리와 상관없이 비어있는 브랜치를 만들려면 git checkout --orphan NEW_BRANCH_NAME
명령어를 사용한다.
--orphan
옵션을 사용하면 부모 커밋이 없는 새로운 브랜치를 만들 수 있다. (위 스크린샷에서 폴더명 옆에 표시된 부모 커밋이 표시안된 것을 볼 수 있다.) --orphan
으로 브랜치를 만들면 기존의 모든 파일은 다음과 같이 스테이징 상태로 있는 것을 확인할 수 있다.
이 파일중 일부를 사용할 수도 있지만 앞에서 말한대로 비어있는 새로운 브랜치가 필요하므로 git rm --cached -r .
로 현재 폴더아래 모든 파일을 제거한다.
커밋이 전혀 없는 빈 브랜치를 얻었으므로 git init
한 뒤에 처음 사용하듯 새로운 파일을 커밋한다.
이제 git log
로 확인해 보면 다음과 같이 기존의 커밋히스토리와 전혀 연결되지 않은 새로운 브랜치를 만들 수 있다.
이 브랜치를 원격 저장소에 푸시하면 하나의 원격 저장소에서 별도의 프로젝트를 관리할 수 있다.
Awesome! (어썸! 영어 댓글은 안달리네요 ㅋ )
스팸필터때문에.. ㅋㅋㅋ 그거 열고 싶었는데 그거 열면 스팸댓글이 너무 많이 달려! ㅋ