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.