Repo là gì?
Kho lưu trữ, hay repo, là một kho lưu trữ kỹ thuật số tập trung mà các nhà phát triển sử dụng để thực hiện và quản lý các thay đổi đối với mã nguồn của ứng dụng. Nhà phát triển phải lưu trữ và chia sẻ các thư mục, tệp văn bản và các loại tài liệu khác khi phát triển phần mềm. Repo có các tính năng cho phép nhà phát triển dễ dàng theo dõi các thay đổi mã, chỉnh sửa đồng thời các tệp và cộng tác hiệu quả trên cùng một dự án từ bất kỳ vị trí nào.
Tại sao repo lại quan trọng?
Repo cho phép các đội ngũ phát triển phần mềm triển khai nhiều thay đổi đối với mã chương trình của phần mềm mà không gây ảnh hưởng đến mã nguồn chính. Thay vì áp dụng trực tiếp những thay đổi này vào nhánh chính, họ sử dụng các tính năng trong một repo để chỉnh sửa và rà soát các thay đổi. Việc này làm giảm xung đột hợp nhất khi có từ hai nhà phát triển trở lên đồng thời chỉnh sửa cùng một phần của mã.
Các nhà phát triển cũng sử dụng repo để đưa vào những tính năng mới hoặc sửa các lỗi mà không làm ảnh hưởng đến phiên bản sản xuất của ứng dụng. Họ tạo ra một nhánh mới hoặc bản sao mã nguồn gốc làm kho lưu trữ cục bộ để thao tác trên đó. Nhờ làm vậy, các nhà phát triển đảm bảo rằng các thay đổi mới được kiểm thử đúng cách trước khi phát hành đến khách hàng.
Những lợi ích của repo đối với doanh nghiệp
Các doanh nghiệp linh hoạt hơn và phản hồi tốt hơn trước nhu cầu không ngừng thay đổi của người tiêu dùng khi họ sử dụng repo cho quá trình phát triển ứng dụng. Các nhà phát triển có thể thao tác trên những tính năng mới một cách nhanh chóng mà không gây ảnh hưởng đến tính ổn định của các ứng dụng đang hoạt động. Repo cho phép các nhà phát triển đưa vào các thay đổi và giải quyết các vấn đề tiềm ẩn một cách nhanh chóng. Các tổ chức cũng có thể điều phối các tác vụ phát triển ứng dụng giữa các nhà phát triển làm việc từ xa.
Repo GitHub là gì?
GitHub là một repo dựa trên đám mây cho phép các nhà phát triển lưu trữ và thao tác trên mã dự án một cách có tổ chức. GitHub được xây dựng trên Git, một hệ thống kiểm soát lập phiên bản, đồng thời bao gồm các tính năng bổ sung giúp cải thiện khả năng cộng tác giữa các nhà phát triển. GitHub cung cấp một UI đồ họa giúp sử dụng các chức năng kho lưu trữ dễ dàng hơn.
GitHub cũng đã trở thành một cộng đồng nguồn mở trực tuyến cho các nhà phát triển. Các nhà phát triển có thể kết nối với những đồng nghiệp khác bằng cách tham gia vào cuộc thảo luận, trợ giúp và đóng góp chuyên môn của họ vào các dự án công khai trên GitHub.
Vì GitHub là repo phổ biến nhất và được sử dụng thường xuyên trong các cộng đồng nhà phát triển trên toàn thế giới, bài đăng trên blog này tập trung cụ thể vào repo GitHub.
Repo GitHub hoạt động như thế nào?
Repo GitHub cho phép các nhà phát triển cộng tác từ xa và theo cách phân tán với một công cụ kiểm soát lập phiên bản được cài đặt cục bộ. Các nhà phát triển sử dụng một giao diện dòng lệnh để triển khai các chức năng trong Git — một phần mềm kiểm soát phiên bản.
Git cho phép các nhà phát triển tạo, quản lý và hợp nhất các thay đổi về mã với mã nguồn chính.
Tạo
Đầu tiên, các nhà phát triển tạo ra một kho lưu trữ mới trên thư mục của dự án có chứa các tệp mã. Ngoài ra, họ cũng có thể nhân bản kho lưu trữ Git từ một kho lưu trữ hiện có. Kho lưu trữ Git thường chứa một tệp README, trong đó hiển thị thông tin mô tả về dự án.
Cấu hình
Trước khi thực hiện thay đổi đối với kho lưu trữ cục bộ, các nhà phát triển cấu hình repo này bằng các thêm các thông tin như tên người dùng và email. Điều này cho phép những người cộng tác xác định tác giả của một repo Git cụ thể. Sau đó, nhà phát triển có thể thay đổi mã và lưu lại bằng lệnh git commit.
Thay đổi
Các nhà phát triển thay đổi mã trong repo của họ. Ban đầu, những thay đổi này chỉ được lưu trữ trong hệ thống cục bộ của họ. Khi sẵn sàng, họ có thể hợp nhất những thay đổi này với repo trung tâm. Nếu một nhà phát triển khác thay đổi cùng tệp đó, họ có thể rà soát và giải quyết mọi xung đột theo cách thủ công.
Repo GitHub có những tính năng chính nào?
Kho lưu trữ GitHub cung cấp cho các nhà phát triển khả năng lập phiên bản, chia sẻ và cộng tác mã tập trung với những tính năng sau.
Phân nhánh
Phân nhánh là quá trình tạo ra bản sao của kho lưu trữ trên GitHub. Theo mặc định, một kho lưu trữ GitHub có nhánh chính chứa mã nguồn gốc và các tệp do nhà phát triển tải lên lúc đầu. Nếu nhà phát triển cần sửa đổi một phần cụ thể của mã, họ tạo ra một nhánh có chứa bản sao hoàn chỉnh của các tệp mã và gắn nhãn tương ứng cho nhánh đó.
Các nhà phát triển có thể tạo ra nhiều nhánh từ kho lưu trữ chính. Ví dụ: các nhà phát triển có thể tạo ra một nhánh tính năng để viết mã cho các chức năng mới của phần mềm và một nhánh khác để khắc phục các vấn đề được báo cáo.
Ghi lại các thay đổi
Ghi lại các thay đổi là một tính năng cho phép các nhà phát triển lưu lại tất cả các thay đổi họ đã thực hiện với các tệp mã trong nhánh. GitHub cho phép các nhà phát triển mô tả các thay đổi mới mà họ đưa vào mã khi họ ghi lại những thay đổi này. Khi các nhà phát triển mô tả thay đổi, điều đó cho phép các thành viên trong đội ngũ biết về những thay đổi này cũng như lý do thay đổi.
Yêu cầu kéo
Một yêu cầu kéo gửi tin nhắn chính thức đến những người đóng góp khác làm việc với nhánh chính hoặc chủ sở hữu nhánh để rà soát các thay đổi được ghi lại. Những người cùng đóng góp có thể rà soát, đưa ra ý kiến hoặc thực hiện thêm các thay đổi đối với ghi chép ban đầu trước khi gửi đi để hợp nhất. Khi rà soát một yêu cầu kéo, những người đóng góp có thể thấy những thay đổi đối với mã gốc.
Hợp nhất
Hợp nhất là một quy trình GitHub áp dụng các thay đổi được ghi lại vào nhánh chính. Việc này được thực hiện khi những người đóng góp đã rà soát và chấp thuận những thay đổi được ghi lại. Sau đó, họ gọi yêu cầu hợp nhất trên GitHub, từ đó khởi chạy một loạt các kiểm tra trước khi hợp nhất những thay đổi đó vào mã gốc.
Có những loại kho lưu trữ Git nào?
Các nhà phát triển có thể tạo ra hai loại kho lưu trữ Git với các cấp độ quyền khác nhau.
Kho lưu trữ trống
Kho lưu trữ trống chỉ chứa thư mục chỉ mục. Các nhà phát triển không thể sửa đổi các tệp trong kho lưu trữ trống.
Kho lưu trữ thay đổi
Kho lưu trữ thay đổi sẽ lưu trữ các bản sao của những tệp nguồn mà các nhà phát triển có thể thao tác trên đó và ghi lại các thay đổi.
AWS hỗ trợ các yêu cầu về repo của bạn như thế nào?
Với Amazon Web Services (AWS), AWS CodeCommit là một hệ thống lập phiên bản mã trực tuyến mà bạn có thể sử dụng để lưu trữ một cách bảo mật các kho lưu trữ Git riêng. CodeCommit tích hợp với công cụ dựa trên Git hiện có của bạn để tạo nên một quy trình phân phối liên tục và tích hợp liên tục (CI/CD) liền mạch. Dưới đây là một số cách bạn có thể sử dụng CodeCommit:
- Tự động bảo mật mã của bạn bằng cách mã hóa dù mã đang được truyền hay đang được lưu trữ
- Giữ cho các kho lưu trữ của bạn gần với môi trường AWS hơn
- Thiết lập quy trình làm việc bảo mật và có quy mô linh hoạt cho quá trình cộng tác mã trên Đám mây AWS
Bắt đầu sử dụng các repo bằng cách đăng ký tài khoản AWS ngay hôm nay.