Git system kontroli wersji
Git system kontroli wersji – śledzi zmiany dokonywane na plikach.
instalacja na mac, instalacja na win
na mac niektóre polecenia trzeba uruchomić jako super admin czyli wpisujemy: sudo git push
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
zalety
- 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
polecania
- wysokopoziomowe
- 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
Hope this helps and happy coding :)