Chciałbym przyczynić się do pewnego projektu w GitHub . Czy powinienem to rozwidlać ? Rozgałęziać to? Co jest zalecane i jak to zrobić?
Chciałbym przyczynić się do pewnego projektu w GitHub . Czy powinienem to rozwidlać ? Rozgałęziać to? Co jest zalecane i jak to zrobić?
Odpowiedzi:
Idealnie ty:
jeśli jest to nowe żądanie funkcji, nie zaczynaj najpierw kodowania. Pamiętaj, aby opublikować problem w celu omówienia nowej funkcji.
Jeśli funkcja jest dobrze omawiana i istnieje +1 lub właściciel projektu ją zatwierdził, przypisz problem do siebie, a następnie wykonaj powyższe kroki.
Niektóre projekty nie będą korzystać z systemu żądania ściągania. Skontaktuj się z autorem lub listą mailową, aby dowiedzieć się, jak najlepiej odzyskać kod z powrotem do projektu.
Aby dodać do odpowiedzi Yanna , po rozwidleniu projektu możesz rozwinąć dowolną gałąź (nową lub oryginalną)
Pamiętaj by:
origin
', ponieważ origin
byłoby to twoje własne repo, wynik rozwidlenia)git checkout master;
git pull;
samo dla rozwoju (gdzie moja gałąź funkcji została najpierw scalona) Różnicę, o której mogę myśleć po przeczytaniu „pull vs pull --rebase” i „merge vs rebase” to tylko płaska historia. Coś jeszcze głębszego?
Aby dodać do odpowiedzi Yan i VonC, jest to dobry zasób od samych github: http://help.github.com/forking/
Pamiętaj również, aby spojrzeć na prawy pasek boczny pod nagłówkiem „współpracujący”.
Jest tutaj świetne wideo z Railscast , które przeprowadzi Cię przez ten proces. Zawiera również szereg dobrych wskazówek, takich jak pokazanie, w jaki sposób określić, nad którą gałęzią chcesz pracować, przyczyniając się, używając testów, submodułów itp.
Chociaż ten screencast koncentruje się przede wszystkim na programistach Railsów, większość informacji jest ważna dla udziału w każdym projekcie open source.
Github ma wiele sposobów współpracy przy projekcie. Modelem najczęściej używanym w projekcie jest model żądania ściągania. Rozpocząłem projekt, aby pomóc ludziom składającym pierwsze żądanie ściągnięcia z GitHub. Możesz zrobić praktyczny samouczek, aby zrobić swój pierwszy PR tutaj
Przepływ pracy jest prosty jak
git push origin branch-name
Compare and pull request
przycisklornajane ma post na blogu, który dobrze wyjaśnia ten proces: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
Sugerowałbym następujący przepływ pracy:
Klonuj (w linii poleceń)
git clone <url-from-your-workspace>
Wejdź do właśnie utworzonego katalogu i utwórz gałąź
cd <directory>
git checkout -b <branchname>
Teraz wprowadź zmiany
Możesz utworzyć jeden lub więcej zatwierdzeń po każdej zmianie:
commit -a
Po zakończeniu naciśnij zmiany
git push origin <branch>
W linii poleceń powinieneś zobaczyć adres URL do utworzenia PR . Odwiedź adres URL i kliknij przycisk, aby utworzyć PR.
Jeśli nie, odwiedź repozytorium w przeglądarce, a zobaczysz przycisk do utworzenia żądania ściągnięcia
Otóż to.
Zasadniczo rozwidliłeś repozytorium do swojego obszaru roboczego, utworzyłeś nową gałąź i wypchnąłeś tę nową gałąź.
Jeśli później utworzysz więcej PR z tego samego sklonowanego repozytorium, powinieneś zsynchronizować (uzyskać najnowsze zmiany z oryginalnego repozytorium) przed utworzeniem kolejnej gałęzi dla innego PR:
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
Te sugestie są tutaj, aby uchronić cię przed trudem umieszczenia pracy w PR, który nie zostanie scalony. Jeśli w projekcie jest aktywność, a PR zostanie scalony, to dobry znak. Jeśli istnieją Wytyczne dotyczące wkładu, zastosuj się do nich.
Zawsze bądź uprzejmy. Pamiętaj, że opiekunowie projektu nie są w żaden sposób zobowiązani do scalenia twojego PR. Czy masz coś cennego do dodania do projektu?