Cách sử dụng Git để đóng góp cho phần mềm nguồn mở
Học Git là một kỹ năng cần thiết trong phát triển phần mềm. Sự phổ biến ngày càng tăng của phần mềm mã nguồn mở đã dẫn đến thành công của Git. Bạn có thể sử dụng nó để theo dõi các đóng góp, quản lý cộng tác và lưu trữ cơ sở mã trong kho lưu trữ từ xa.
Git đóng một vai trò quan trọng trong hầu hết các dự án mã nguồn mở. Tìm hiểu mối quan hệ của Git với mã nguồn mở và cách bạn có thể sử dụng công cụ hiệu quả này để tăng cường đóng góp của mình.
Mục Lục
Mối quan hệ giữa Git và mã nguồn mở
Git là một phần mềm kiểm soát phiên bản được sử dụng rộng rãi trong quá trình phát triển. Git cho phép bạn theo dõi các thay đổi phần mềm trong thời gian thực, lưu các bản sao mã của bạn trong các kho lưu trữ từ xa và cộng tác trực tuyến. Hãy xem xét chuyên sâu về Git trong hướng dẫn Git nâng cao của chúng tôi.
Git cũng là một dự án mã nguồn mở mà những người đóng góp đã làm việc để cải thiện theo thời gian. Phần mềm mã nguồn mở nói chung là miễn phí cho mọi người sử dụng. Phần mềm trở thành mã nguồn mở khi chủ sở hữu cấp quyền cho bất kỳ ai sử dụng, thay đổi và phân phối mã nguồn.
Đóng góp nguồn mở diễn ra theo cách công khai và hợp tác, còn được gọi là “Xây dựng ở nơi công cộng”. Tìm hiểu thêm về sự khác biệt giữa phần mềm nguồn mở và phần mềm nguồn đóng.
Git có các tính năng cộng tác rất cần thiết trong mã nguồn mở. Git cho phép các nhóm hợp tác duy trì các dự án. Nó cho phép bạn tìm nạp mã, thêm đóng góp trên máy cục bộ của bạn và gửi các thay đổi của bạn để được xem xét.
Các tính năng Git được sử dụng trong mã nguồn mở
Git có một số lệnh được sử dụng để thực hiện các hoạt động trên giao diện của nó. Có rất nhiều lệnh như vậy, nhưng bạn không cần phải học tất cả chúng để đóng góp cho mã nguồn mở. Dưới đây là một số thuật ngữ và lệnh cơ bản mà bạn sẽ gặp phải:
- Cái nĩa: Bản sao của kho lưu trữ (repo) GitHub. Khi bạn thực hiện một cái nĩa, bạn nhận được một bản sao của nó trên tài khoản GitHub của mình, cho phép bạn chỉnh sửa nội dung mà không ảnh hưởng đến kho lưu trữ mẹ của dự án.
- Vấn đề: Ý tưởng, lỗi hoặc nhiệm vụ mà những người đóng góp có thể thực hiện. Sự cố với nhãn như vấn đề đầu tiên tốt là một nhiệm vụ đơn giản nhằm thúc đẩy những người đóng góp tham gia vào các dự án mã nguồn mở.
- Nhãn mác: Được sử dụng để phân loại các vấn đề và các cuộc thảo luận.
- Người bảo trì: Người đóng góp có quyền sửa đổi các tệp trong kho lưu trữ của dự án. Họ còn được gọi là chủ sở hữu mã.
- Người đóng góp: Bất kỳ ai đóng góp mã, tài liệu hoặc các tài nguyên kỹ thuật khác cho Dự án.
Sau đây là một số lệnh phổ biến bạn sẽ sử dụng trong phát triển mã nguồn mở:
- Chi nhánh: Bản sao nội dung của repo. Một repo có thể có nhiều nhánh: nhánh chính và một số nhánh khác, nếu cần. Nhánh mặc định là chính / chủvà bạn có thể đặt tên cho các nhánh khác tùy theo mục đích của chúng.
- Hợp nhất: Hợp nhất có nghĩa là nối các nhánh khác nhau lại với nhau sao cho chúng có cùng mã.
- Yêu cầu kéo (PR): Thông báo cho bảo trì rằng bạn đã đẩy mã cần xem lại. Thực hiện một yêu cầu kéo khi đã sẵn sàng để hợp nhất với nhánh mẹ và cần đánh giá từ những người khác.
- Xa: Phiên bản trực tuyến của kho lưu trữ cục bộ của bạn.
- Tìm về: Tải nội dung của một kho lưu trữ từ xa vào kho lưu trữ cục bộ của bạn.
- Làm: Theo dõi các thay đổi đối với tệp trên repo cục bộ hoặc trực tuyến. Tất cả các cam kết đều có một ID duy nhất ghi lại thông tin chi tiết về tác giả, thời gian và bản chất của các thay đổi được thực hiện.
Bắt đầu với mã nguồn mở
Trong hướng dẫn này, chúng ta sẽ xem xét các bước cơ bản mà bạn sẽ thực hiện để đóng góp đầu tiên cho mã nguồn mở. Chúng tôi sẽ sử dụng Git làm kho lưu trữ cục bộ và GitHub làm kho lưu trữ từ xa. Đây là cách bạn bắt đầu.
1. Chọn một dự án
Xác định một dự án phù hợp để đóng góp. Kỹ năng và niềm đam mê tạo sự khác biệt của bạn sẽ quyết định bạn chọn dự án nào. Bạn có thể đóng góp một tính năng, tài liệu hoặc các kỹ năng như quản lý sản phẩm.
Dự án phù hợp sẽ có một cộng đồng hoạt động tích cực trên các kênh xã hội như Slack hoặc Twitter. Kho lưu trữ của nó nên có những đóng góp thường xuyên và cấp phép thích hợp cho phần mềm nguồn mở.
2. Nhận Hướng dẫn dành cho cộng tác viên
Mọi dự án nguồn mở có uy tín nên có hướng dẫn cộng tác viên. Hướng dẫn có các hướng dẫn và chỉ dẫn để chỉ cho các nhà phát triển mới cách đóng góp cho dự án.
Bạn sẽ học cách phân nhánh, xử lý một vấn đề và đưa ra yêu cầu kéo tới repo ngược dòng để cho phép những người bảo trì xem xét đóng góp của bạn. Bạn rất có thể sẽ tìm thấy hướng dẫn dành cho cộng tác viên trong thư mục gốc của dự án.
Hướng dẫn dành cho cộng tác viên sẽ giúp bạn hiểu quy trình làm việc của dự án và giảm xung đột hợp nhất. Nếu bạn không tuân thủ các nguyên tắc dành cho cộng tác viên này, người bảo trì có thể từ chối yêu cầu kéo.
Đây là một ví dụ về hướng dẫn dành cho cộng tác viên từ dự án AsyncAPI.
3. Chọn một vấn đề
Một vấn đề có thể là bất cứ điều gì bạn muốn đóng góp. Đó có thể là một yêu cầu bạn đã xác định trong phần vấn đề trên kho lưu trữ dự án, lỗi đánh máy hoặc tài liệu bạn muốn thêm vào dự án.
Trước khi bạn bắt đầu làm việc trên một vấn đềtrước tiên hãy hỏi về hoặc thảo luận về vấn đề với những người bảo trì. Đôi khi, đó có thể là một vấn đề cũ hoặc một vấn đề mà một cộng tác viên khác đã và đang giải quyết. Đây là phần vấn đề trên GitHub trông như thế nào:
4. Giải quyết vấn đề
Sau khi những người bảo trì chấp thuận vấn đề, bạn có thể thiết lập một kho lưu trữ được phân nhánh. Forking sẽ cung cấp cho bạn một bản sao của kho lưu trữ mẹ vào kho lưu trữ của bạn. Bạn sẽ sao chép kho lưu trữ vào máy cục bộ của mình với git clone <địa chỉ kho lưu trữ> yêu cầu.
Bạn có thể mở thư mục trên trình soạn thảo mã ưa thích của mình và bắt đầu làm việc. Ở đây, điều cần thiết là phải biết cú pháp của các ngôn ngữ đánh dấu phổ biến như Markdown, vốn phổ biến trong hầu hết các dự án mã nguồn mở. Nếu bạn đang giải quyết vấn đề về tài liệu, bạn có thể sẽ sử dụng Markdown như được minh họa bên dưới:
5. Gửi công việc của bạn để được xem xét
Khi bạn đã giải quyết xong vấn đề, hãy làm theo quy trình làm việc của hướng dẫn dành cho cộng tác viên để chuyển công việc của bạn lên GitHub để xem xét. Sử dụng các bước sau để định cấu hình fork và gửi nó để xem xét.
- Kết nối kho lưu trữ cục bộ của bạn với kho lưu trữ ngược dòng của dự án bằng lệnh sau:
git remote add upstream https: - Sử dụng git fetch để tải nội dung của nhánh ngược dòng xuống nhánh cục bộ của bạn:
git branch -u upstream/master master - Tạo một chi nhánh mới với git branch
. Bạn có thể kiểm tra xem chi nhánh mới có được tạo bằng chi nhánh git yêu cầu. - Giai đoạn chi nhánh của bạn với git add
và cam kết nó với git commit -m. - Đẩy mã của bạn đến chi nhánh GitHub với git push origin
. - Làm một yêu cầu kéo(PR). PR cảnh báo những người bảo trì xem xét chi nhánh của bạn và đề xuất các thay đổi trước khi hợp nhất. Sơ đồ này tóm tắt toàn bộ quá trình.
6. Đánh giá và hợp nhất
Sau khi gửi PR, những người bảo trì có thể sẽ xem xét và đề xuất các thay đổi. Bạn có thể thực hiện các thay đổi cục bộ hoặc làm các thay đổi được đề xuất trên kho lưu trữ từ xa. GitHub có một điều khoản để làm thay đổi từ xa.
Trong quá trình xem xét, bạn sẽ nhận được phản hồi về đóng góp của mình và có thể yêu cầu làm rõ một số vấn đề. Dưới đây là minh họa về cách bạn có thể cam kết các thay đổi trên GitHub:
Khi bạn thực hiện xong các thay đổi, hãy thực hiện các cam kết mới. Cam kết sẽ thông báo cho những người bảo trì để xem xét lại công việc của bạn. Nếu tất cả các lần kiểm tra đều vượt qua, PR của bạn sẽ nhanh chóng được hợp nhất. Xin chúc mừng! Bạn vừa có đóng góp đầu tiên của mình cho một dự án mã nguồn mở.
Git tăng cường hợp tác nguồn mở
Git đóng một vai trò thiết yếu trong các đóng góp nguồn mở. Git cho phép các dự án lớn và nhỏ theo dõi đóng góp, quản lý các nhóm và lưu trữ các phiên bản mã nguồn khác nhau. Bản thân là một dự án nguồn mở, Git đã nâng cao chất lượng và số lượng đóng góp cho phần mềm nguồn mở.
Đóng góp mã nguồn mở đầu tiên của bạn có thể sẽ đáng sợ, nhưng thật dễ dàng và thú vị khi bạn tìm hiểu quy trình làm việc. Sử dụng Git sẽ giúp bạn trau dồi kỹ năng viết mã, học cách cộng tác và kết nối với những người giỏi nhất trong ngành công nghệ. Hãy tiếp tục và bắt đầu!