Skip to content

Latest commit

 

History

History
284 lines (197 loc) · 7.59 KB

File metadata and controls

284 lines (197 loc) · 7.59 KB

Ćwiczenia 1

Proszę bez kopiuj&wklej. Czytaj uważnie instrukcję. Wersja po angielsku - manual.md.

Podstawy pracy z Gitem

System kontroli wersji (SCM – Source Controll Management), jest podstawą każdego projektu. Możesz używać gita do zachowywania aplikacji i skryptów rozwijanych w czasie zajęć.

  1. Utwórz konto na githubie - https://github.com/join

  2. Jeśli pracujesz na współdzielonej maszynie to utwórz folder o nazwie takiej jak Twój użytkownik gita (którego właśnie utworzyłeś) – jeśli pracujesz na swojej maszynie, utwórz folder workspace:

    # na swoim laptopie
    mkdir -p workspace/nauka_gita
    cd workspace/nauka_gita
    # na wspołdzielonym komputerze
    # uzywamy nazwe githuba, aby uniknac kolizji
    mkdir -p workspace/NAZWA_UZTYK_GITHUB/nauka_gita
    cd workspace/NAZWA_UZTYK_GITHUB/nauka_gita
  3. Skonfiguruj git-a (zastąp wojciech11 swoim użytkownikiem githuba):

    # make L
    git config -l
    git config --global user.name "wojciech11"
    
    # nie lubimy spamerów
    # (email jest dołączony do zapisów w git/githubie)
    git config --global user.email "wojciech11@users.noreply.github.com"
    
    # zauważ, że cała globalna konfiguracja jest w następującym pliku
    cat ~/.gitconfig
  4. Zainicjuj repozytorium git-a:

    # sprawdź, czy jesteś we właściwej ścieżce
    pwd
    
    # powinienies zobaczyc
    # sciezke konczaco sie nauka_gita
    
    # utworz repozytorium
    git init
    
    # zawuaz
    # ze repozytorium jest w .git/
    ls .git/
    
    # zauwaz ze repozytorium ma swoj
    # plik konfiguracyjny
    cat .git/config
  5. Podążając za wskazówkami wykładowcy, utwórz README.md za pomocą atom (packages -> Markdown Preview -> Toggle).

    touch README.md
    
    # otwórz edytor atom w katalogu glownym
    # repozytorium
    atom .

    Dodaj kilka sekcji, obrazów, listy... pobaw się formatem Markdown podążając za wskazówkami z dokumentacji.

    Aby zainstalować atoma na ubuntu (na podstawie snapcraft):

    sudo snap install atom --classic
  6. Jak jest rola pliku README.md? Dlaczego plik README jest tak istotny?

  7. Nauczymy się jak używać Gita. Podążaj za wskazówkami wykładowcy, aby nauczyć się o komendach git działających na lokalnym repozytorium:

    git status
    git add README.md
    git status
    git commit -m "My N commit" # N=1,2,3
    git status
    git log

    Zmodyfikuj README.md i umieść zmiany w repozytorium. Powtórz 3 razy.

  8. Przyglądnij się, jak wygląda historia z pomocą graficznych programów gitk i gitg:

    gitk
    gitg

    Doskonałymi graficznymi środowiskami do pracy z gitem jest sourcetree i gitkraken.

  9. Zmieniła się̨ polityka GitHub i nie można już̇ logować́ się̨ hasłem od konta, dlatego sprawdź́ w dokumentacji jak wygenerować́ token i go użyć - oficjalna dokumentacja. Zaznacz dwa zakresy dla tokena:

    • repository
    • workflow
  10. Czas umieścić nasz projekt na githubie. Utwórz repozytorium w githubie, przez przeglądarkę, używając interfejsu webowego - nauka_gita:

    # tak jak podpowiada wam github.com
    git remote add origin https://.../nauka_gita.git
    
    # **przeczytaj**
    # na co git "narzeka"
    # po wykonaniu następującej
    git push
    
    # podazajac za wskazowka
    # pelna komenda:
    git push --set-upstream origin master

    Jak nasze lokalne repozytorium jest połączone ze zdalnym repozytorium:

    # aby zobaczyc jak nasze lokalne repozytorium w katalogu .git
    # ma swoj odpowiednik w githubie
    git remote -v

    Wizualizacja:

    flowchart BT
    l(local\n.git) -- origin --> H(remote\ngithub)
    
    Loading
  11. Wróćmy do naszej mantry ale tym razem dodamy git push:

    git status
    
    # zmien README.md
    git status
    git add README.md
    
    # bez -m,
    # git otworzy domyslny edytor
    git commit
    git log
    git push
    
    # odswiez w przeglarce swoje repozytorium
    # nauka_gita

    Proszę wykonaj wszystkie kroki przynajmniej 3 razy.

  12. Boże! Ile razy mam podawać hasło (token). Jest na to rozwiazanie. Powinieneś włączyć credential.helper:

    git config --global credential.helper store

    Now, git will remember your token.

    If you want to disable the helper, run the following commands:

    git config --global --unset credential.helper
    rm ~/.git-credentials
  13. A co gdy ma repozytorium na githubie i chce zacząć z nim pracować lokalne. Ściągnąć repozytorium? Zobaczmy jak to zrobić:

    # przejdzmy do innego katalogu
    mkdir ~/tmp
    cd ~/tmp
    
    # url z github.com
    git clone https://github.com/<TWOJ_GITHUB_USER>/nauka_git
  14. Naszkicuj, jak wygląda proces wrzucania plików do git-a (zaznacz staging oraz index i remote).

Następny krok - Git branches

Podążając za instrukcjami prowadzącego.

  1. Git branches? Pull request?

    # equivalent of `git status` but for braches
    git branch
    
    git checkout -b add-documentation
    
    git branch
    
    # add two or three commits
    # e.g.,
    mkdir docs
    touch docs/README.md
    
    # your fav editor
    atom docs/README.md
    
    # here comes the git commit mantra
    # good to see the history
    # in a graphical tool
    gitk
    gitg
    # let's publish our branch to github
    git push -u origin add-documentation
    git branch
    
    # let's see what we have in our directory
    ls
    
    # let's change the local branch to `master`
    git checkout master
    # what did change?
    ls
    
    # let's come back to the branch
    # with documentation
     git checkout add-documentation
    
     ls
  2. Merging:

    git checkout master
    
    # let's get the changes from the add-documentation branch
    # on our master branch
    git merge add-documentation
    git push

Pull Requests / Merge Requests

Follow the instructor.

  • Pull requests - github
  • Merge requests - gitlab

Zawansowane - Branches and Automations

See also comparing workflows.

Narzędzia

  • Proste: gitk i gitg;
  • Oferujące więcej funkcjonalności: sourcetree lub kraken;
  • tekstowe: tig.

Zaawansowane - właściwe opisy zmian