====== Tạo website bằng cách trộn các kho code từ git ====== Lưu ý: để sử dụng theo cách này các bạn phải sử dụng được git từ dòng lệnh. ===== Bước 1: Tạo kho code chính ===== Khởi tạo kho code để lưu trữ. ===== Bước 2: Check out kho code chính ===== checkout kho git ===== Bước 3: Lấy kho code NukeViet ===== Sử dụng Terminal chạy lần lượt các câu lện sau để lấy code NukeViet 4 nhánh ổn định tại thời điểm hiện tại. git remote add nukeviet https://github.com/nukeviet/nukeviet.git git fetch nukeviet git merge nukeviet/nukeviet4.3 --allow-unrelated-histories Sau này muốn cập nhật các thay đổi từ kho NukeViet chỉ cần chạy các câu lện sau git fetch nukeviet git merge nukeviet/nukeviet4.3 **Lưu ý: nếu muốn lấy nhánh develop thì thay release thành develop** ===== Bước 4: Lấy các module ===== Ví dụ lấy module shops 4 nhánh ổn định tại thời điểm hiện tại Sử dụng Terminal chạy lần lượt các câu lện sau: git remote add shops https://github.com/nukeviet/module-shops.git git fetch shops git merge shops/nukeviet4.3 --allow-unrelated-histories **Lấy các Module khác tưong tự. Trong quá trình trộn code sẽ xảy ra xung đột (Thường là xung đột file .gitigone) chúng ta cần xử lý xung đột. Ví dụ với xung đột file .gitigone chúng ta thay nội dung file này như bước dưới sau đó comit lên ** ===== Bước 5: Cài đặt site ===== Cài đặt site như bình thường Sau khi cài đặt site, sẽ phát sinh một số file như file config.php Nên cần sửa lại file .gitignore để đưa các file này lên kho code Thay thế file .gitignore có nội dung như sau # Base ignore /.project /.buildpath /.settings /data/cache/ /data/config/diagnostic-*.xml /data/logs/* /data/logs/data_logs/ /data/logs/error_logs/ /data/logs/ip_logs/ /data/logs/ref_logs/ /data/logs/voting_logs/ /data/tmp/ composer.lock #vendor test ignore /vendor/**/demo/ /vendor/**/example/ /vendor/**/examples/ /vendor/**/Examples/ /vendor/**/test/ /vendor/**/tests/ /vendor/**/Tests/ /vendor/**/travis* /vendor/**/.travis.yml /vendor/**/.scrutinizer.yml /vendor/**/phpunit.xml* /vendor/**/phpunit.php #vendor docs ignore /vendor/**/doc/ /vendor/**/docs/ /vendor/**/Documentation/ /vendor/**/readme* /vendor/**/README* /vendor/**/changelog* /vendor/**/CHANGELOG* /vendor/**/FAQ* /vendor/**/CONTRIBUTING* /vendor/**/HISTORY* /vendor/**/UPGRADING* /vendor/**/UPGRADE* /vendor/**/package* /vendor/**/phpunit.php /vendor/**/.gitignore /vendor/**/composer.* Để tránh xung đột trước khi up lên kho code, ta làm như sau. Chọn file .gitignore chuột phải và chọn Team --> Add to index ===== Bước 6: Code ===== Việc code, thêm sửa file như bình thường, sau khi thực hiện xong 1 công việc cần commit để lưu lại lịch sử làm việc ===== Bước 7: Đưa code lên Site ===== Sau khi chỉnh sửa xong, tạo thư mục vinades đưa CSDL và các tài liệu vào đó để người khác có thể cài đặt được nhanh. ===== Bước 8: Lấy các file đã thay đổi đưa lên hosting ===== Để Zip các file mới sửa, thêm mới giữa hai commit Sử dụng lệnh: git archive -o update_g09.zip HEAD $(git diff-tree -r --name-only --diff-filter=ACMRT 798d90a90848af8a5f67b525fb3460e81a8f9072 72ff06e8029e6fdfa81db0e25d8d9719d8242006) Chú ý: Tên các file không có khoảng cách mới dùng được cách này