Git submodule cho người bận rộn

trong danh mục DevOps, Technology

Số là hôm nay vừa chuyển 2 repo framework và restful sdk của Teamcrop từ composer về submodule nên chia sẻ nhanh 1 số bước để sử dụng submodule cho repo của bạn. Một phần để lưu lại sau này dùng vì kiến thức rồi sẽ ra đi, chỉ có blog là ở lại và cũng chia sẻ cho bạn nào chưa biết.

Nói một cách ngắn gọn thì submodule giúp bạn mang 1 repo khác bỏ vào repo đang làm việc, giúp việc tái sử dụng code hiệu quả hơn. Ví dụ như đối với dự án Teamcrop là muốn nhúng core framework và restful sdk dùng cho tất cả microservices. Còn vì sao mình dùng submodule mà không dùng composer hoặc các hình thức khác thì mình thấy submodule khá phù hợp với mô hình private repository.

1. Thêm submodule vào dự án hiện tại

Đối với dự án, nếu muốn thêm submodule từ đầu thì dùng lệnh sau (từ thư mục gốc của dự án):
> git submodule add http://mygitserver/teamcrop/cropbase.git ./internal/cropbase

Khi chạy lệnh này thì git sẽ clone repo cropbase vào thư mục ./internal. Đồng thời tạo (cập nhật) file .gitmodules chứa thông tin của repo này.

2. Xóa submodule

Muốn xóa submodule, cần làm các bước sau:
– Bước 1: sử dụng lệnh deinit
~ > git submodule deinit <path-to-submodule>

– Bước 2: muốn xóa thư mục submodule khỏi repo thì dùng git rm
~ > git rm <path-to-submodule>

– Bước 3: xóa thư mục submodule bên trong .git/modules/
~ > rm -rf .git/modules/<path-to-submodule>

3. Cập nhật submodule tới commit mới nhất

Để lấy source code mới nhất từ submodule, bạn chỉ cần thực hiện câu lệnh sau thì sẽ cập nhật code trong thư mục submodule đến commit mới nhất.
~ > git submodule update –remote


Có khá nhiều bài viết hướng dẫn, giới thiệu về submodule trong git, các bạn có thể google thêm để biết sâu hơn, đối với mình hiện tại hài lòng với workflow submodule ở trên mình chia sẻ.

Hiện tại Tuấn chưa thử submodule trong submodule và không biết nó sẽ hoạt động thế nào. Nếu ai có kinh nghiệm thì chia sẻ sub trong sub nhé.

 

Gởi bình luận