Zawsze jest ciężko, kiedy robisz coś po raz pierwszy. Szczególnie gdy współpracujesz z innymi ludźmi, popełnianie błędów nie jest niczym przyjemnym. Jednak właśnie na współpracy opiera się idea otwartego oprogramowania. Chcieliśmy uprościć dla nowych programistów proces nauki i wgrania swojej pierwszej zmiany w obcym projekcie.
Czytanie artykułów i oglądanie poradników może pomóc, ale czy jest coś lepszego niż spróbowanie czegoś samemu bez obaw, że się coś zepsuje? Ten projekt ma na celu dostarczyć wskazówek i uprościć wgranie pierwszej zmiany nowicjuszom. Pamiętaj: im bardziej jesteś zrelaksowany, tym lepiej się uczysz. Jeśli chcesz wgrać swoją pierwszą kontrybucję wykonaj kilka prostych kroków poniżej. Będzie fajnie, obiecujemy.
Przeczytaj w innych językach: English, Indonesian, French, Spanish, Dutch, Hindi, Russian, Japanese, Vietnamese, Korean, German, Simplified Chinese, Traditional Chinese, Greek, العربية, Ukrainian and Português/Brasil.
Jeśli nie masz Gita na swoim komputerze, zainstaluj go .
Utwórz fork tego repozytorium klikając przycisk "Fork" na górze tej strony. Stworzysz tym samym kopie tego repozytorium na swoim koncie.
Teraz sklonuj repozytorium na swój komputer. Kliknij na przycisk "clone" a później na ikonkę skopiuj do schowka.
Otwórz konsolę i uruchom komendę git:
git clone "wklej skopiowany adres"
Gdzie "wklej skopiowany adres" (bez cudzysłowów) to adres tego repozytorium. Zobacz poprzedni krok aby skopiować adres.
Przykład:
git clone https://github.com/to-ty/first-contributions.git
W miejscu 'to-ty' to Twój login na githubie. W tym kroku ściągasz zawartość Twojej kopii repozytorium first-contributions z githuba na swój komputer.
Wejdź w folder ze swoim repozytorium (jeżeli jeszcze tam nie jesteś):
cd first-contributions
Teraz utwórz nową gałąź wykonując polecenie git checkout
:
git checkout -b <add-twoje-imie>
Przykład
git checkout -b add-adam-kowalski
(Nazwa gałęzi nie musi zawierać słowa add, ale dobrze jest je dodać z racji tego, że celem tej gałęzi jest dodanie twojego imienia to listy.)
Otwórz plik Contributors.md
w edytorze tekstu, dodaj swoje dane i zapisz go. Jeżeli będziesz w folderze repozytorium i uruchomisz polecenie git status
zobaczysz, że pojawiły się zmiany. Dodaj te zmiany do wcześniej utworzonej gałęzi przy pomocy polecenia git add
.
git add Contributors.md
Teraz zapisz te zmiany wykonując komendę git commit
:
git commit -m "Add <twoje-imie> to Contributors list"
Zastąp <twoje-imie>
swoim imieniem i nazwiskiem.
Wyślij swoje zmiany komendą git push
:
git push origin <add-twoje-imie>
Zastąp <add-twoje-imie>
nazwą gałęzi, którą wcześniej utworzyłeś.
W swoim repozytorium na GitHubie znajdziesz przycisk Compare & pull request
. Kliknij go.
Teraz wyślij prośbę o scalenie.
Niedługo dodam proponowane przez ciebie zmiany do głównej gałęzi projektu. Zostaniesz powiadomiony mailowo kiedy zmiany zostaną scalone.
Teraz, kiedy gałąź <add-twoje-imie>
spełniła swoje zadanie, usuńmy ją.
Jeśli dotarłeś z poradnikiem do tego momentu, nasza gałąź <add-twoje-imie>
spełniła swoje zadanie i pora usunąć ją z twojego komputera. Nie jest to koniecznie, ale sama nazwa gałęzi wskazuje na jej konkretny cel i tym samym naturalnie krótki żywot.
Najpierw połączy gałąź <add-twoje-imie>
z gałęzią główną. Przejdź więc do gałęzi głównej:
git checkout master
Scal <add-twoje-imie>
z master:
git merge <add-twoje-imie> master
Usuń <add-twoje-imie>
z repozytorium na swoim komputerze:
git branch -d <add-twoje-imie>
Właśnie usunąłeś gałąź <add-twoje-imie>
ze swojego komputery i wszystko wygląda schludnie.
Jednakże, nadal masz gałąź <add-twoje-imie>
w swoim forku na GitHubie. Zanim ją usuniesz pamiętaj, że wysłałeś "Pull request" do mojego repozytorium z tej zdalnej gałęzi. Jeśli jeszcze jej nie scaliłem - nie usuwaj jej.
Jeśli scaliłem już twoją gałąź i chcesz ją usunąć, użyj:
git push origin --delete <add-twoje-imie>
Teraz już wiesz jak uporządkować swoje gałęzie. Z czasem wiele zmian zostanie wprowadzonych do mojego publicznego repozytorium. Gałąź główna na twoim komputerze i w twoim forku repozytorium nie będą aktualne. Aby utrzymać swoje repozytoria zsynchronizowane z moim, wykonaj kroki poniżej.
Na początku musisz zrozumieć ideę pełnej synchronizacji. W tym wypadku istnieją 3 różne repozytoria: moje publiczne na Githubie github.com/Roshanjossey/first-contributions/
, twój fork na Githubie github.com/twoj-login/first-contributions/
i lokalne repozytorium na twoim komputerze, na którym pracujesz.
Aby zsynchronizować twoje 2 repozytoria z moim musisz wpierw ściągnąć i scalić publiczne repozytorium z tym na twoim komputerze. Drugim krokiem jest wgranie twojego lokalnego repozytorium do forka na GitHubie. Jak już wcześniej widziałeś możesz poprosić o scalanie zmian (pull request) tylko ze swojego forka. Twój fork na GitHubie jest ostatnim repozytorium, które będzie zaktualizowane.
Ok, działamy:
Musisz znajdować się w głównej gałęzi swojego repozytorium (master). Sprawdź aktualną gałąź w pierwszej linijce po wpisaniu polecenia:
git status
jeśli nie jesteś w gałęzi master wpisz:
git checkout master
Dodaj moje publiczne repozytorium do swojego gita add upstream remote-url
:
git remote add upstream https://github.com/Roshanjossey/first-contributions
Tym sposobem powiesz gitowi, że istnieje inna wersja tego repozytorium pod podanym adresem i nazywamy ją upstream
. Gdy git zna już nazwę, ściągnijmy aktualną wersję publicznego repozytorium:
git fetch upstream
Właśnie ściągnąłeś najnowszą wersję mojego repozytorium (upstream remote). Teraz scal publiczne repozytorium do swojej gałęzi master.
git rebase upstream/master
W tym kroku scalasz publiczne repozytorium ze swoją gałęzią master. Twoja lokalna gałąź master jest aktualna. Teraz, kiedy wyślesz swoje zmiany do swojego forka na GitHubie, też będzie aktualny:
git push origin master
W tym momencie wysyłasz zmiany do nazwanej gałęzi zdalnej.
Wszystkie twoje repozytoria są aktualne. Dobra robota! Powinieneś wykonać ten proces za każdym razem, kiedy twoje repozytorium stwierdzi, że jest kilka zmian (commitów) do tyłu za publicznym repozytorium.
GitHub Desktop | Visual Studio 2017 | GitKraken |
Możesz dołączyć do naszego Slacka jeśli potrzebujesz pomocy albo masz jakieś pytania (Wersja angielska). Dołącz do Slacka
Oto lista kilku problemów w popularnych repozytoriach z którymi poradzi sobie osoba początkująca. Zajrzyj do nich żeby dowiedzieć się więcej