Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

git submodule 활용하기

[2022-01-02 추가] submodule보다는 패키지 관리자를 이용하는 것을 추천합니다. PHP라면 컴포저 패키지를 만드는 게 낫다고 봅니다. 사용을 해 보니 submodule은 그리 좋지가 않네요.


git가 좋은 게, 내 프로젝트에 사용하는 라이브러리를 프로젝트 안에서 clone해서 쓸 수 있다는 거다. 우리가 내부 프로젝트에 공통으로 사용할 용도로 만든 사내 라이브러리를 관리할 때도 사용할 수 있다.

예컨대, marxism이라는 프로젝트가 있다고 하자. 우리는 공통으로 관리하는 sass 모듈이 있다. marxism의 css 폴더 밑에다가 이 공통 모듈을 두고 싶다. 그렇다면 이렇게 하는 거다. 프로젝트 root 에서 해도 되고, 뭐 아무데서나 해도 된다.

git sumodule [email protected]:repository/sass-modules css/sass-modules

이렇게 하면 sass-modules 라는 폴더가 생기고, 거기에 내용이 그대로 clone된다. 이 놈은 하나의 독립적인 repository처럼 작동한다. 이 놈을 서브모듈이라고 부른다. 그리고 이 놈의 부모 프로젝트(슈퍼 프로젝트라고 부르더라)는 이 서브모듈의 체크썸을 기억하고 있게 된다.

이후엔 서브모듈에서 작업을 한 뒤 commit, push를 그냥 하나의 git 프로젝트인 것처럼 독립적으로 하면 된다. 이후에 슈퍼 프로젝트로 와서 git status를 해 보면 서브모듈의 체크썸이 바뀌었다는 표시가 나온다. 역시 add, commit, push하면 된다.

즉, 서브모듈에서 알아서 작업하고 add, commit, push한 뒤, 슈퍼 프로젝트에서 역시 add, commit, push해야 한다는 말이다.

submodule이 있는 프로젝트를 clone했을 때 처리할 것

submodule이 있는 프로젝트를 clone했을 때 submodule 디렉토리로 가 보면 그냥 텅 비어 있다. 아래 명령어를 내려 줘야 submodule이 제대로 들어 온다.

git submodule init
git submodule update

이렇게 두 명령어를 쳐 주면 된다.

이상 대략적으로 알아 본 것이다. 더 자세한 설명은 Pro Git의 ‘Git – 서브모듈’을 보자.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다