Tôi muốn đóng góp cho một dự án nào đó trong GitHub . Tôi có nên ngã ba không? Chi nhánh nào? Những gì được đề nghị và làm thế nào để làm điều đó?
Tôi muốn đóng góp cho một dự án nào đó trong GitHub . Tôi có nên ngã ba không? Chi nhánh nào? Những gì được đề nghị và làm thế nào để làm điều đó?
Câu trả lời:
Lý tưởng nhất là bạn:
nếu đó là một yêu cầu Tính năng mới, trước tiên đừng bắt đầu mã hóa. Hãy nhớ đăng một vấn đề để thảo luận về tính năng mới.
Nếu tính năng này được thảo luận tốt và có một số +1 hoặc chủ dự án đã phê duyệt nó, hãy chỉ định vấn đề cho chính bạn, sau đó thực hiện các bước trên.
Một số dự án sẽ không sử dụng hệ thống yêu cầu kéo. Kiểm tra với tác giả hoặc danh sách gửi thư về cách tốt nhất để đưa mã của bạn trở lại dự án.
Để thêm vào câu trả lời của Yann , một khi bạn đã rẽ nhánh một dự án, bạn có thể phát triển ở bất kỳ chi nhánh nào bạn muốn (một dự án mới hoặc một từ dự án ban đầu)
Ghi nhớ:
origin
', vì origin
sẽ là repo của riêng bạn, kết quả của ngã ba)git checkout master;
git pull;
tương tự cho phát triển (nơi nhánh tính năng của tôi được sáp nhập trước) Sự khác biệt tôi có thể nghĩ của, sau khi đọc "pull vs pull --rebase" và "merge vs rebase" chỉ là lịch sử phẳng. Còn gì sâu hơn nữa không?
Để thêm vào câu trả lời của Yan và VonC, đây là một tài nguyên tốt từ chính github: http://help.github.com/forking/
Ngoài ra hãy chắc chắn nhìn vào thanh bên phải dưới tiêu đề "cộng tác".
Có một video Railscast tuyệt vời ở đây hướng dẫn bạn qua quy trình. Nó cũng có một số mẹo hay như chỉ ra cách xác định nhánh nào bạn có thể muốn làm việc khi đóng góp, sử dụng các bài kiểm tra, mô hình con, v.v.
Mặc dù screencast này chủ yếu tập trung vào các nhà phát triển Rails, hầu hết các thông tin đều có giá trị để đóng góp cho bất kỳ dự án nguồn mở nào.
Github có nhiều cách hợp tác với một dự án. Mô hình sử dụng nhiều nhất dự án là một mô hình yêu cầu kéo. Tôi đã bắt đầu một dự án để giúp mọi người thực hiện yêu cầu kéo GitHub đầu tiên của họ. Bạn có thể thực hiện hướng dẫn thực hành để thực hiện PR đầu tiên của mình tại đây
Quy trình làm việc đơn giản như
git push origin branch-name
Compare and pull request
nútlornajane có một bài đăng trên blog giải thích rõ về quy trình này: http://www.lornajane.net/posts/2010/contribution-to-projects-on-github
Tôi muốn đề xuất quy trình làm việc sau đây:
Bản sao (trong dòng lệnh)
git clone <url-from-your-workspace>
Nhập thư mục vừa tạo và tạo một nhánh
cd <directory>
git checkout -b <branchname>
Bây giờ hãy thay đổi
Bạn có thể tạo một hoặc nhiều cam kết sau mỗi thay đổi:
commit -a
Khi hoàn tất, hãy thay đổi
git push origin <branch>
Trong dòng lệnh của bạn, bạn sẽ thấy một URL để tạo PR . Truy cập URL và nhấp vào nút để tạo PR.
Nếu không, hãy truy cập kho lưu trữ trong trình duyệt và nó sẽ cung cấp cho bạn một nút để tạo yêu cầu kéo
Đó là nó.
Vì vậy, về cơ bản, bạn đã rẽ nhánh kho lưu trữ vào không gian làm việc của mình, tạo một nhánh mới và đẩy nhánh mới đó.
Nếu sau này bạn thực hiện thêm PR từ cùng một repo nhân bản, bạn nên đồng bộ hóa (nhận các thay đổi mới nhất từ kho lưu trữ ban đầu) trước khi bạn tạo một chi nhánh khác cho PR khác:
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
Những đề xuất này có ở đây để cứu bạn khỏi những rắc rối khi đưa công việc vào PR mà sẽ không được hợp nhất. Nếu có hoạt động trong dự án và PR được hợp nhất, đây là một dấu hiệu tốt. Nếu có Nguyên tắc đóng góp, hãy làm theo chúng.
Luôn luôn lịch sự. Hãy nhớ rằng, những người duy trì dự án không có nghĩa vụ phải hợp nhất PR của bạn. Bạn có một cái gì đó có giá trị để thêm vào dự án?