> git bundle create {묶을 파일이름_내경우_로컬브랜치명}.bundle --all
git 프로젝트 파일 내에서 위 명령어를 실행하면, 소스까지 다 묶인 bundle 파일이 생성된다.
(파일명 확장자를 꼭 붙이지 않아도 되는 듯하다)
> git init #git 초기화가 안 된 빈 폴더일 경우
> git bundle unbundle {묶을 파일이름_내경우_로컬브랜치명}.bundle
> git pull {묶을 파일이름_내경우_로컬브랜치명}.bundle
이렇게 하면 소스가 없는 경우는 처음 master 브랜치에서 clone 한 것 처럼 소스와 이력이 풀린다.
(git clone {묶을 파일이름_내경우_로컬브랜치명}.bundle 도 사실 가능하기는 함)
한 쪽 방향으로만 가능한 것은 아니고, 양방향으로 파일을 이동하며 소스와 이력 Merge 가 가능하다.
인터넷망에서 개발하고 바로 확인 하기 편안한 웹 리소스는 인터넷망에서 변경하고,
개발서버에 반영하여 개발내용을 확인 해야 하는 폐쇄망에서는 서버쪽 소스를 변경한 뒤,
양쪽 모두 Merge 한다.
폐쇄망에 Merge 할 때에는 Git 서버에서 Master에 Push 된 내용까지 Fetch 하여 적용하여 양쪽 모두 최신 상태로 관리할 수 있다.
같은 파일을 수정하지 않는 이상 충돌은 현재까지 거의 없었다.
같은 파일에 수정이 일어나 충돌하더라도, IntelliJ 같은 IDE 상에서 수동 Merge 할 수 있다.
필요한 것만 초보적으로 사용하고 있는데 옵션이 더 있는지, 있다면 어떤 기능을 하는지 알아봐도 좋을 것이다.
서버는 폐쇄망에 있는데, 소스는 인터넷망에 있어서
테스트 할 때마다 파일을 옮겨야 하는 지옥에서 벗어날 수 있게 해준 Git 천재 생유.
'Dev' 카테고리의 다른 글
스프링 스케쥴러 CRON 식 (0) | 2019.12.11 |
---|---|
인텔리제이 한글 깨짐 :: 같은 것을 다른 방법으로 (0) | 2019.10.18 |
Map vs JsonPath vs Gson vs Jackson (0) | 2019.07.11 |
키워드 (0) | 2019.05.28 |
Apache Server에서 TLS 설정 개념잡기 (0) | 2019.03.29 |