Proszę bez kopiuj&wklej. Czytaj uważnie instrukcję. Wersja po angielsku - manual.md.
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ęć.
-
Utwórz konto na githubie - https://github.com/join
-
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
-
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
-
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
-
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
-
Jak jest rola pliku
README.md
? Dlaczego plik README jest tak istotny? -
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.
-
Przyglądnij się, jak wygląda historia z pomocą graficznych programów
gitk
igitg
:gitk gitg
Doskonałymi graficznymi środowiskami do pracy z gitem jest sourcetree i gitkraken.
-
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
-
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)
-
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.
-
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
-
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
-
Naszkicuj, jak wygląda proces wrzucania plików do git-a (zaznacz staging oraz index i remote).
Podążając za instrukcjami prowadzącego.
-
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
-
Merging:
git checkout master # let's get the changes from the add-documentation branch # on our master branch git merge add-documentation git push
Follow the instructor.
- Pull requests - github
- Merge requests - gitlab
- feature branch workflow / github flow / trunk-based development
- your own with branches, e.g.,
dev
-> the dev environemnt,prod
-> production - git-flow
See also comparing workflows.
- Proste: gitk i gitg;
- Oferujące więcej funkcjonalności: sourcetree lub kraken;
- tekstowe: tig.
- Git commit messages: semantic/vs conventional, imperative (cbea.ms/git-commit)
- Podejście zyskujące na popularności: gitmoji-cli
- Git style guide, e.g., https://github.com/agis/git-style-guide or https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html