Tutorial Git - TrafficSimulationAGH/Krakow GitHub Wiki
Quicktip:
- apply changes git add .thengit commit
- check current branch git branch
- update your branch from master git checkout dev/[imie]thengit merge master
- apply your work to master git checkout masterthengit merge dev/[imie]
- sync from remote repository git checkout master||dev/[imie]thengit pull origin <SOURCE-BRANCH>
- sync to remote repository git push origin <BRANCH-TO-SYNC>
Ogólne zasady, konwencje:
- repozytorium (repo) - projekt przechowywany w folderze, gdzie znajduje się folder ukryty .git;
- branch - gałąź, domyślnie master, pozwala na prowadzenia równoległych wersji projektu; każdy posiada swoją gałąź o nazwiedev/[imie], postępy przesyłamy sobie przezmaster(czyli jeśli Michal chce od Szymona todev/Szymon->master->dev/Michal);
- commit - zapisany stan plików; element historii repo; staramy się utrzymywać zasadę: 1 etap pracy 1 commit (np. Extended descriptions);
- stage - pliki przygotowane do dodania jako commit;
- używamy języka angielskiego - poza dokumentacją;
Polecenia:
- 
git --help- pomoc; można łączyć np.git clone --help; wersja kompaktowa pomocygit -h(nie zawsze dostępna);
- 
git clone <adres url/ssh> [opcjonalnie: folder docelowy]- zielony przycisk u góry strony pozwala zmieniać link między SSH a HTTP; SSH używamy jeśli skonfiurowaliśmy klucz .pubssh-genkeyw ustawieniach konta github; HTTP zadziała wszędzie, ale wymaga podania hasła przy każdym dostępie do repozytorium zdalnego;
- 
git status- podsumowanie aktualnych zmian w repo; wyświetla aktualny stage;
- 
git diff [opcja:HEAD]- różnice względem ostatniego commitu; opcja HEAD pozwala porównać, jeśli wykonamy jużgit add;
- 
git add .- dodaje wybrane foldery i pliki do stage;.oznacza aktualny folder;
- 
git commit- zatwierdź zmiany; pojawi się edytor z podsumowaniem i poprosi o wpisanie komentarza, tytułu commita;
- 
git branch- lista branchy; aktualna zaznaczona*;
- 
git checkout <cel>- zmień branch lub przeskocz w historii repo do innego commita; tego używamy przede wszystkim do zmiany branch, zmiana commita dla zaawansowanych;
- 
git merge <branch>- pobierz zmiany z innego branch do aktualnego; staramy się wymieniać tylko zmaster, czyli do master lub od master do siebie;
- 
git log- historia commitów;
- 
git pull origin <branch>- pobierz zdalne zmiany z branch; UWAGA: trzeba się upewnić, że pobieramy ten sam branch, na którym jesteśmy, w innym przypadku zaktualizujemy aktualny o zmiany z innego i trudno to cofnąć, postępujemy świadomie;
- 
git push origin <branch>- zaktualizuj branch na githubie; nie powinno zależeć od aktualnego brancha;
Wszystkie polecenia wykonujemy w folderze projektu!
Konflikty uniemożliwiają poprawnie zakończyć zmian commit. Mogą pojawić się po wykonaniu pull lub merge, a ich aktualny stan widać po wykonaniu git status. Status to podstawowe narzędzie, w którym sprawdzimy czy problem został rozwiązany.
Krok po kroku:
- 
git status- wyświetli pliki skonfliktowane;
- edytujemy skonflikotwane pliki, w zależności od edytora sekcja kolizji może być różnie zaznaczona (tekst / kolor), ja polecam Visual Studio Code, czyścimy ręcznie lub używamy propozycji programu (VS CODE) tak aby został tylko ten kod, który jest poprawny;
- 
git add .- przygotwujemy zmiany;
- 
git status- konflikt powinien być rozwiązany;
- 
git commit- zatwierdzamy naprawioną wersję;
Pierwszy konflikt na jaki możecie trafić to
doc/proposal/proposal.pdf. W tym przypadku wystarczy usunąć plik i wygenerować na nowo z poziomu texStudio.