Skip to content

Hướng dẫn đóng góp vào dự án public trên github

Trong quá trình sử dụng các open source trên github, có thể bạn gặp vấn đề và sau đó tìm được cách sửa lỗi. Bạn muốn đóng góp nó vào repository để sửa lỗi này cho tất cả mọi người. Hoặc dự án của bạn bao gồm nhiều người và repository cần để public để có thể sử dụng một số tính năng của github như protect branch, đây là hướng dẫn dành cho bạn.

Đầu tiên, đối với các dự án open source lớn, hầu như đều có một hướng dẫn để contribute vào repository (thông thường nằm ở thư mục mẹ và là file CONTRIBUTING.md). Hãy đọc kỹ nó. Thông thường nó bao gồm các unitest, các bước để review một thay đổi, hoặc quy chuẩn chung như đặt tên biến, đặt tên branch... mà bạn phải tuân theo.

Sau khi đã đọc kỹ, bắt đầu code thôi.

1. Fork và clone project

  • Tại repository, chọn fork

    fork-project - Chọn repository để fork (nếu không có hướng dẫn gì, hãy chọn master hoặc main), sau đó chọn Create fork

    create-fork - Sau khi fork được repository, clone repository về

    clone-forked

2. Thực hiện thay đổi và push

  • Sau khi clone project về, tiến hành checkout sang branch mới. Tên branch cần thể hiện sơ qua mục đích của thay đổi, hoặc tác dụng của nó

    git checkout -b add-proxy-for-build
    
    switch-branch
  • Thay đổi các dòng trong code

  • Push các thay đổi lên branch vừa tạo

    push-code

3. Tạo pull request để thay đổi repository gốc

  • Tại repository gốc (không phải repo bạn vừa fork về), tiến hành tạo pull request

    pull-request new-pull-request

  • Chọn compare across fork, sau đó chọn fork repo và branch của mình. Cuối cùng chọn Create pull request

    compare-across-fork - Tại giao diện pull request, giải thích rõ bạn làm gì, tại sao contribute này lại cần thiết. Điều này rất quan trọng để maintainers hiểu bạn thay đổi cái gì và từ đó có cơ sở để approve.

    description_pull_request

  • Cuối cùng, chờ thôi. Các pull request sẽ phải có người review và approve. Trong quá trình đó, một số repository có bot để build tự động. Nếu build thất bại, request của bạn cần được chỉnh sửa hoặc sẽ bị reject. Một số maintainers có thể sẽ đặt câu hỏi thêm để hiểu rõ chinh xác thay đổi của bạn là gì. Nhớ check thông báo để trả lời nhé

    waiting-for-approve