Witam.
Pierwszy raz pracuję z kimś wspólnie na GitHubie. Nie wiem za bardzo co i jak, tzn jak dzielić pracę z innymi użytkownikami, tak żeby nie skasować kodu. Czy jeden użytkownik na raz może tworzyć kod ? Jak pobierać zaktualizowany kod z GitHuba (umiem tylko updatewoć kod na Git) ? Jakieś rady co do Githuba ?
Pocztyj co to jest git flow i jak się obchodzić z branchami
A na jakim etapie wiedzy jesteś?
Czy rozumiesz jak działa Git ogólnie (również pod kątem pracy na gałęziach)?
Jak pobierać zaktualizowany kod z GitHuba (umiem tylko updatewoć kod na Git) ?
git pull, ale może ogarnij jakiś szczegółowy tutorial gita, żeby zrozumieć założenia.
na stack overflow też można znaleźć fajne wytłumaczenia, też odnośnie merge, rebase itp.
Czy jeden użytkownik na raz może tworzyć kod ?
Nie. Może dużo osób naraz. To jest potęga rozproszonych systemów wersji. Tylko, że ludzie robią zmiany lokalnie (mają lokalną niezależną kopię repozytorium Gita u siebie na dysku), potem pushują w internet na swoje repo. Wystawiają pull request (który nie jest już częścią Gita, tylko GitHuba albo innej platformy, która umożliwia kolaborację).
Jednak mimo, że wiele użytkowników może naraz tworzyć kod u siebie, to jeśli wszyscy będą zmieniać to samo (np. tę samą klasę w pliku), mogą wystąpić konflikty przy scalaniu takiego kodu z resztą (bo każdy będzie miał inną wersję prawdy).
Ok. Załóżmy więc, że w kilku piszemy kod. Ja edytuję plik np. editor.hpp i chciałbym teraz update'ować repo. Jak to zrobić krok po kroku ?
Zobacz jakiś tutorial dotyczący pull requestów: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request
Jeśli jeden plik był edytowany przez kilku ludzi, to musisz rozwiązać konflikty: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github
Do wykonywania nieskomplikowanych operacji można używać klienta GitHub Desktop: https://desktop.github.com/download/
tBane napisał(a):
Jakieś rady co do Githuba ?
Ustalcie wyższość rebase nad mergem.
Ma to tą zaletę że ostatni odpowiada za wszyskie problemy więc powstaje naturalna presja na zwiększanie velocity w zespole (nikt nie chce być ostatnim).
Zrób jakiś tutorial pracy z Gitem, bo Git wymaga ogarnięcia całego worfklow.
Ja edytuję plik np. editor.hpp i chciałbym teraz update'ować repo. Jak to zrobić krok po kroku ?
Robisz nowego commita i próbujesz go jakoś połączyć z masterem na githubie. Opcje są wie:
- po prostu pushujesz master lokalny -> master na githubie. Najprostsze, ale nie masz kod review i CI nie wyłapuje ci twoich błędów
- tworzysz flow z osobnym branchem
Osobnego brancha możesz zrobić lokalnie przy pomocy git checkout -b nazwa_brancha
. Taki branch pushujesz do githuba i robisz Pull request. W tym pull requescie możesz zrobić review i kliknąć merge. Warto poczytać w jaki sposób można łączyć branche, zazwyczaj jest merge
flow albo rebase
flow. Musisz poczytać o tym i wybrać odpowiednio
Czasami też pracuje się na osobnych repo dla security. Twój kolega może zrobić forka twojego repo, pracować na nim i wrzucać Pull requesty do twojego głównego repo. Zaleta jest taka, że dzięki temu tylko ty masz dostęp do modyfikacji twojego repo, przez co nikt inny nie może z nim zrobić coś czego byś nie chciał
tBane napisał(a):
Ok. Załóżmy więc, że w kilku piszemy kod. Ja edytuję plik np. editor.hpp i chciałbym teraz update'ować repo. Jak to zrobić krok po kroku ?
Come on... na YT jest milion tutorialy o tym jak się posługiwać gitem...
Dzięki wszystkim za odpowiedzi :-)