Hệ thống kiểm soát phiên bản là nền tảng để xây dựng quy trình phát triển hiện đại. Chúng làm giảm sự phức tạp của việc cộng tác đồng thời cho phép các nhà phát triển theo dõi và kiểm soát sự phát triển của mã nguồn. Git là hệ thống kiểm soát phiên bản mã nguồn mở được sử dụng rộng rãi nhất và đó là lý do tại sao cPanel & WHM giúp dễ dàng lưu trữ các kho Git và tự động triển khai mã từ kho lưu trữ đến sản xuất.
Bài viết này BKNS sẽ giới thiệu Git và hướng dẫn bạn cách lưu trữ kho Git từ xa với cPanel của bạn nhé!
Tóm Tắt Bài Viết
Git là gì?
Git là một hệ thống kiểm soát phiên bản được tạo bởi Linus Torvalds. Đây cũng là trưởng nhóm phát triển của nhân Linux. Hệ thống kiểm soát phiên bản theo dõi những thay đổi trong mã nguồn và giúp nhiều lập trình viên làm việc hiệu quả trên cùng một cơ sở mã nguồn. Với Git, các lập trình viên có thể quản lý mã của họ, hợp nhất an toàn từ nhiều nguồn và khôi phục mã về phiên bản cũ nếu có sự cố xảy ra.
Kho lưu trữ Git của một dự án phần mềm thường được lưu trữ trên một máy chủ bên ngoài. Mỗi lập trình viên tải bản sao xuống máy tính xách tay hoặc máy tính để bàn của họ, thực hiện các thay đổi và sau đó tải phiên bản mới của họ lên máy chủ. Như bạn có thể hình dung, việc phối hợp các thay đổi từ nhiều lập trình viên khác nhau là vô cùng phức tạp. Git sẽ hỗ trợ cho quá trình đó, ít nhất là giúp quản lý được quy trình.
Trước khi tìm hiểu về cách thiết lập kho lưu trữ và quản lý mã nguồn, BKNS giới thiệu một vài thuật ngữ chính để giúp bạn hiểu cách Git hoạt động.
-
- Kho lưu trữ (Repository): Một thư mục do Git quản lý, chứa các file mã nguồn của dự án và thông tin Git cần để cung cấp các tính năng kiểm soát phiên bản.
- Kho lưu trữ từ xa (Remote repository): Kho lưu trữ được đặt trên máy chủ từ xa, thường là nguồn mã chính thức của dự án. Ngược lại, kho lưu trữ cục bộ (local repository) là phiên bản mã nguồn của lập trình viên.
- Phiên bản (Commit): Phiên bản là ảnh chụp nhanh của mã nguồn tại một thời điểm cụ thể. Việc này là nhằm tạo ra một phiên bản mới của mã nguồn vào kho lưu trữ.
- Sao chép (Clone): Là một bản sao hoàn chỉnh của kho lưu trữ. Lập trình viên sao chép kho lưu trữ từ xa trong lần đầu tiên tạo kho lưu trữ cục bộ để làm việc.
- Đẩy (Push): Lập trình viên đẩy các thay đổi từ kho lưu trữ cục bộ của họ lên kho lưu trữ từ xa.
- Kéo (Pull): Lập trình viên kéo các thay đổi từ kho lưu trữ từ xa về kho lưu trữ cục bộ của họ. Việc này đảm bảo rằng bất kỳ thay đổi nào trong kho lưu trữ từ xa đều được tích hợp vào phiên bản cục bộ của lập trình viên.
Ngoài ra, bạn có thể tìm hiểu thêm bảng chú giải thuật ngữ Git chính thức để nắm được thông tin.
Lưu trữ kho Git từ xa với cPanel
Git là một công cụ linh hoạt với nhiều cách sử dụng khác nhau, nhưng chúng ta sẽ tập trung vào quy trình làm việc đơn giản để lưu trữ và quản lý kho lưu trữ Git bằng cPanel.
Điều kiện cần có
Trước khi bắt đầu, bạn cần:
-
- Truy cập SSH vào tài khoản cPanel của bạn.
- Tài khoản cPanel có công cụ Git Version Control, có sẵn từ cPanel Version 82 trở lên.
-
- Máy tính cục bộ có thiết bị đầu cuối và máy khách SSH, chẳng hạn như Windows Terminal hoặc Terminal.app trên macOS.
- Git được cài đặt trên máy tính cục bộ của bạn. Bạn có thể cài đặt Git bằng cách làm theo hướng dẫn cài đặt của Git .
Để đẩy mã nguồn tới kho lưu trữ Git của máy chủ, bạn cũng cần tạo cặp khóa SSH và cài đặt khóa công khai trên máy chủ của mình. Trước hết, BKNS sẽ hướng dẫn bạn cách tạo cặp khóa SSH.
Tạo và tải lên khóa SSH cho Git
Chúng ta sẽ sử dụng SSH để giao tiếp an toàn với kho lưu trữ Git và khóa SSH. Đây là một lựa chọn thay thế cho mật khẩu để xác thực với máy chủ.
Khóa SSH đi theo cặp, gồm khóa công khai và khóa riêng tư. Khóa riêng tư được lưu trên máy tính cục bộ của bạn. Khóa công khai được tải lên máy chủ. Bạn chỉ có thể xác thực bằng SSH trên máy chủ nếu có khóa riêng tư khớp với khóa công khai đã tải lên.
Chúng ta sẽ tạo cặp khóa trên máy tính cục bộ bằng OpenSSH và sử dụng công cụ SSH Access của cPanel để tải khóa công khai lên. OpenSSH đã được cài đặt sẵn trên macOS và Linux, còn trên Microsoft Windows, bạn có thể cài đặt theo hướng dẫn https://git-scm.com/downloads.
Mở terminal của bạn và chạy lệnh sau:
ssh-keygen
Làm theo hướng dẫn để chọn tên cho cặp khóa và mật khẩu cho khóa. Nếu bạn chọn nhập mật khẩu, hãy đảm bảo là bạn nhớ nó. Bạn sẽ không thể sử dụng khóa nếu không có mật khẩu này.
Tiếp theo, mở thư mục bạn đã tạo cặp khóa, tại đây bạn sẽ tìm thấy một số file. Chúng ta quan tâm đến file có tên id_rsa.pub
. Mở file này bằng trình soạn thảo văn bản và sao chép nội dung.
Điều hướng đến trang SSH Access trong cPanel, nằm trong phần Bảo mật của menu trang chính.
Nhấp vào Manage SSH Keys và sau đó chọn Import Key.
Chọn tên khóa và dán khóa công khai vào vùng văn bản bên dưới. Sau đó chọn Import.
Bây giờ đã thiết lập xong khóa SSH, chúng ta có thể sao chép, thực hiện kéo đẩy mã nguồn bằng Git. Nhưng trước tiên, bạn cần tạo một kho lưu trữ.
Tạo kho lưu trữ Git mới trên máy chủ của bạn
Kho lưu trữ từ xa sẽ là vị trí lưu trữ chính thức của mã nguồn trang web trong quá trình phát triển. Những người làm việc trên code sẽ tải xuống từ đây và upload các thay đổi của họ, Git sẽ hợp nhất các thay đổi này với code hiện có.
Sử dụng File Manager để tạo một thư mục mới trên máy chủ nhằm lưu trữ các tệp phát triển của trang web. Lưu ý không sử dụng dấu cách trong tên thư mục.
Mở giao diện Git Version Control của cPanel
Nhấp vào nút Create và nhập vị trí của thư mục dự án. Bạn cũng có thể đặt tên cho kho lưu trữ. Hãy đảm bảo rằng nút Clone a Repository không được kích hoạt. Sau khi hoàn tất, nhấp Create ở cuối trang.
Sao chép kho lưu trữ vào máy tính cục bộ
Để sử dụng kho lưu trữ từ xa trên máy tính cục bộ, trước tiên phải sao chép nó để tạo một kho lưu trữ cục bộ. Sao chép sẽ tạo ra một bản sao hoàn chỉnh. Mở Terminal trên thiết bị cục bộ và sử dụng lệnh cd
để di chuyển đến thư mục bạn muốn lưu trữ các file dự án.
Sau đó, chạy lệnh sau, thay thế user1
, example.com
, và /home/user1/NewSiteDev
bằng tên người dùng, tên miền và vị trí kho lưu trữ từ xa và chi tiết máy chủ của bạn.
git clone ssh://user1@example.com/home/user1/NewSiteDev
Git có thể cảnh báo bạn rằng bạn đã sao chép một kho lưu trữ trống. Trước khi thực hiện, hãy xem cách để có thể đồng bộ các thay đổi trong kho lưu trữ từ xa với môi trường cục bộ của mình.
Nếu bạn không muốn sao chép toàn bộ kho lưu trữ của máy chủ mỗi khi có gì đó thay đổi và chỉ quan tâm đến sự khác biệt giữa bản sao trên máy chủ và bản sao cục bộ, bạn có thể sử dụng lệnh pull
. Các lệnh Git được chạy từ bên trong thư mục dự án.
git pull origin
Trong lệnh này, origin có nghĩa là kho lưu trữ từ xa, cái nằm trên máy chủ. Bạn nên lấy từ xa bất cứ khi nào bạn bắt đầu phiên phát triển mới để luôn có phiên bản mã cập nhật nhất.
Đẩy các thay đổi cục bộ trở lại máy chủ của bạn
Hãy tạo một file trên máy cục bộ và đẩy nó lên máy chủ. Để minh họa, chúng ta sẽ tạo một file index.html đơn giản. Mở trình soạn thảo văn bản ưa thích của bạn, dán đoạn HTML sau và lưu nó vào thư mục dự án.
<!DOCTYPE html>
<html>
<head>
<title>New Site</title>
</head>
<body>
<h1>New Site Placeholder Page</h1>
<p>We'll use Git to push this file to our remote repository.</p>
</body>
</html>
Đầu tiên, chúng ta phải tạo file mới, điều này cho Git biết rằng chúng ta muốn đưa nó vào kho lưu trữ.
git add index.html
Tiếp theo, hãy xác nhận các thay đổi của mình.
git commit
Git sẽ yêu cầu bạn nhập mô tả ngắn gọn về công việc của bạn bằng trình soạn thảo văn bản đầu cuối mặc định. Viết tin nhắn, lưu file và đóng trình chỉnh sửa. Nếu trình soạn thảo mặc định của bạn là Vim hoặc Vi, hãy nhấn “i” để vào chế độ insert, nhập message của bạn, nhấn esc, sau đó nhập “:wq”, sau đó là phím enter.
Bây giờ tất cả những gì còn lại là đẩy kho lưu trữ cục bộ lên điều khiển từ xa:
git push origin
Lệnh này sẽ gửi các thay đổi của bạn và hợp nhất chúng với kho lưu trữ từ xa. Nếu có bất kỳ thay đổi nào trên điều khiển từ xa kể từ lần cuối bạn kéo, Git sẽ từ chối push. Bạn sẽ phải kéo lại để đảm bảo rằng bạn có phiên bản mới nhất.
Nếu bạn nhìn vào thư mục dự án trong File Manager của cPanel, bạn sẽ thấy file HTML bạn đã tạo hiện đang có trên máy chủ của bạn.
Tự động triển khai code lên Server sản xuất với cPanel
Khi bạn đã hoàn thành việc chỉnh sửa trang web mới của mình, bạn sẽ muốn triển khai nó lên môi trường sản xuất. Bạn có thể sao chép thủ công các file của trang web vào public_html
, nhưng Git Version Control của cPanel có thể tự động hóa quá trình triển khai.
Trong thư mục dự án cục bộ của bạn, hãy tạo một file có tên .cpanel.yml
. File này cho cPanel biết mã nào cần triển khai và đặt nó ở đâu. Trong trường hợp đơn giản nhất, nó trông như thế này.
export DEPLOYPATH=/home/user/public_html/ /bin/cp index.html $DEPLOYPATH
Trong đoạn code ở trên, chúng ta đang sao chép file index.html
của mình vào thư mục public_html
. Tuy nhiên, quá trình triển khai có thể phức tạp hơn và yêu cầu nhiều bước hơn.
Lưu file .cpanel.yml
và push nó lên kho lưu trữ từ xa bằng các lệnh:
git add .
git commit
git push origin
Dấu chấm (.) trong lệnh git add
yêu cầu Git thêm tất cả các thay đổi chưa được thêm vào vùng lưu trữ.
Với file .cpanel.yml
được thiết lập, cPanel sẽ tự động triển khai các thay đổi khi chúng được đẩy từ máy tính cục bộ lên máy chủ. Ngoài ra, bạn cũng có thể triển khai code thủ công bất cứ lúc nào. Mở Git Version Control của cPanel và nhấp vào tab Pull or Deploy. Ở cuối trang, có một nút gọi là Deploy Head Commit. Nhấp vào nút này sẽ triển khai code mới nhất của bạn theo như mô tả trong file cấu hình YAML.
Tab này cũng hiển thị thông tin về lần triển khai thành công gần đây nhất và phiên bản kích hoạt nó.
Tổng kết
Qua bài viết trên, BKNS đã giúp bạn có thêm thông tin về lưu trữ kho Git từ xa với cPanel. Hy vọng bài viết đã mang đến cho bạn nhiều kiến thức hữu ích. Ngoài ra bạn có thể tham khảo các dịch vụ của BKNS qua website BKNS hoặc hotline tư vấn dịch vụ: 1800 646 884 (Miễn phí cước). Cảm ơn bạn đã đón đọc bài viết!