Git system kontroli wersji

Git system kontroli / zarządzania wersjami – SCM to skrót od Source Control Management – śledzi zmiany dokonywane na plikach.

download Git

instalacja na mac, instalacja na win

na mac niektóre polecenia trzeba uruchomić jako super admin czyli wpisujemy: sudo git push
na windows zamiast okna wiersza poleceń lepiej używać Git for Windows

Do pisania komend w GIT możesz użyć:

  • terminal – Command Line
  • edytora kody jak np. VS Code z rozszerzeniem GitLens
  • poprzez GUI jak np. Github Desktop, lub GitKraken, ale trzeba pamiętać że każde GUI ma pewne ograniczenia i niektóre polecenia będą działać wyłącznie w Linii Komend

skróty

VCS – Version Control System – system kontroli wersji
CVCS – Centralized Version Control System – scentralizowany system kontroli wersji
DVCS – Distributed Version Control System – rozproszony system kontroli wersji
SCM – Source Control Management

  • collaboration tool
  • version control tool

zalety

  • współpraca wielu programistów przy jednym projekcie
  • możliwość śledzenia wprowadzanych przez każdą osobę zmian w kodzie
  • kopia pełnego repozytorium
  • możliwe wykorzystanie hierarchicznego modelu (schematu) pracy
  • zmiany jako zestaw migawek (snapshots) – commit – obraz wszystkich plików w danym momencie (w przypadku braku zmian w danym pliku, git przechowuje referencję do jego ostatniej, zmodyfikowanej wersji)
  • szybki dostęp do historii, całość danych znajduje się na lokalnym komputerze
  • wbudowany mechanizm spójności danych – kontroluje zmianę każdego pliku i wyznacza sumę kontrolną przed zapisem (jako skrót SHA-1)

obszary pracy

  • working directory
  • staging area
  • commit

commit

w pewnym sensie to mały update do pełnego kodu repozytorium, liczba commitów jest nie ograniczona. Pozwala na „cofnięcie” się w czasie projektu i zobaczenie jaki kod był wtedy.

Dobrą praktyką jest robienie commitów z mniejszych ilości kodu tak by łatwiej było dokonać pull request czyli review kodu.

Każdy commit ma swój indywidualny hash, który identyfikuje go.

review

zazwyczaj dokonuje się review kodu po dodaniu commita do projektu ale przed mergem całości.

To pozwala na wyłapanie ewentualnych błędów, robiąc review możesz zostawić komentarz (comment), zatwierdzić (approve) lub stwierdzić, ze wymaga poprawek (request changes).

polecania

  1. wysokopoziomowe
  2. niskopoziomowe
  • git init – tworzenie nowego repozytorium
  • git –help – pomoc
  • git –version
  • gitk – graficzna osbługa gita
  • config
    • git config user.name „Agnieszka” – ustawia nazwę użytkownika
    • git config user.email hello@webscene.pl
    • git config color.ui true – informacje wyświetlane w kolorze
    • git config user.name – podaje nazwę użytkownika
  • git status – info
  • add
    • git add name.html – dodanie pliku do śledzenia do staging area
    • git add . – dodanie wszystkich zmienionych plików do staging area
    • git add -p name.html
    • git add –all – dodanie wszystkich plików do staging area
  • git rm –cached name.html – usuniecie pliku zapisanego w staging area
  • commit
    • git commit – zacommitowanie zmian
    • git commit -m „adding …” – z komentarzem
    • git commit -am „adding …” – jeśli pliki były dodane i nie są untracked
  • checkout
    • git checkout — <file> – odrzucenie zmian w katalogu roboczym
    • git checkout commit_name — name.html – przywrócenie wersji podanego pliku ze wskazanego commita
    • git checkout HEAD — name.html – ostatni commit
    • git checkout branch_name – przejście na wskazaną gałąź
    • git checkout -b branch_name – dodanie nowej gałęzi i przejście na nią
  • log
    • git log – jakie commity zostały zapisane – q – zamknięcie wyświetlania, j – następne, k – poprzednie
    • git log –oneline – wyświetla logi po jednej linice
    • git log –oneline –graph – wyświetla logi w jednej linice i pokazuje zaleznosci
    • git log –all –oneline
  • merge
    • git merge master – połączenie obecnej gałęzi ze wskazaną master
    • git merge –abort – przerwanie merg’a
  • diff
    • git diff name/name.html – porównanie zmian konkretnego pliku
    • git diff commit_name — name/name.html – porównanie zmian konkretnego pliku ze wskazanym commitem
    • git diff HEAD – pokazuje zmiany względem ostatniego zapisanego commita
  • branch
    • git branch – wyświetla gałęzie z zaznaczeniem aktywnej
    • git branch -b name – dodanie nowej gałęzi i przejście na nią
    • git branch branch_name – tworzenie nowej gałęzi
    • git checkout -b branch_name – dodanie nowej gałęzi i przejście na nią
    • git branch -d name – usuniecie danej gałęzi

 

cached – zapisany w staging area

Clear cache:

git rm -r –cached .
git add .
git commit -am 'git cache cleared’

komunikaty

  • untracked files – pliki nie śledzone przez Git’a

poziomy

  • system – najwyższy, dla wszystkich użytkowników w systemie
  • globalny – dla danego użytkownika
    • git config –global user.name „Agnieszka”
  • lokalny – dla konkretnego repozytorium
    • git config user.name „Agnieszka”

 

Korzystając z konsoli git mamy dostępne linuksowe polecenia plikowe jak: cat, find, grep, wc.

.gitignore

*.txt

!readme.txt

directory_name

 

Kolorowanie wyświetlanych informacji

 

http://ndpsoftware.com/git-cheatsheet.html

https://git-scm.com/book/pl/v1/Podstawy-Gita-Praca-ze-zdalnym-repozytorium

http://rogerdudler.github.io/git-guide/index.pl.html

http://blog.piotrnalepa.pl/2013/05/19/git-podreczny-zestaw-niezbednych-komend-dla-kazdego-webdevelopera-i-nie-tylko/

https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config

wstęp do gita

git system kontroli wersji

Hope this helps and happy coding :)

Zobacz jeszcze

sitemap

adres site...

sample video

...