GIT – komendy
Sprawdzenie wersji, instalacji Git
git –version
git -v
Wprowadzenie danych użytkownika
git config –global user.name „Agnieszka Trefler”
git config –global user.email hello@webscene.pl
dane te będą dołączone do każdego commita który wykonasz.
Sprawdzenie czy wprowadzone dane są zapisane
git config –list
git config user.name
git config user.email
lub przez otwarcie pliku (jeśli wiesz gdzie się znajduje) poleceniem cat ~/ .gitconfig
po wpisaniu git config otrzymasz wykaz wszystkich poleceń
Sprawdzenie statusu projektu
git status
tu dowiemy się na jakim branchu jesteśmy, jakie są commity i jakie pliki są obserwowane, czy sa zmiany do zapisania/s-commitowania
Dodanie plików do obserwacji
git add [file name] – konkretny plik, git add README.md
git add . – wszystkie pliki w katalogu
git add '*.sass’ – wszystkie pliki z rozszerzeniem .sass
Zapisanie zawartości obserwowanych plików w historii
git commit
git commit -m 'init’ – zapisanie kopi z adnotacją 'init’
Flagi
-m – message – wiadomość, treść powinna jednoznacznie określać, co zostało zrobione, być krótka ale konkretna, napisana w języku angielskim
z wykorzystaniem czasu teraźniejszego
Przegląd historii commitów
git log –oneline
Identyfikator commit
7 znakowy kod służący za identyfikator commita, inaczej id, pozwala na bezpośrednie odwołanie się do niego, dzięki czemu możemy wczytać stan plików z tego momentu lub cofnąć zmiany.
HEAD
HEAD -> main
Sygnalizuje na jakim branchu / gałęzi jesteśmy.
Cofnięcie zmian w kodzie
git revert –no-commit id – podajemy id commita od którego chcemy wycofać zmiany, git revert –no-commit a17ec87
konflikty
Pojawiają się zazwyczaj gdy parę osób pracuje nad tym samym plikiem, wtedy należy manualnie zatwierdzić które zmiany są poprawne a które nie zostaną wprowadzone.
Wykluczenie pliku lub katalogu
W katalogu głównym projektu tworzymy plik .gitignore i wprowadzamy reguły pozwalające na ignorowanie wybranych plików lub katalogów
- git –version
- git init – inicjalizacja Git w projekcie, utworzenie katalogu .git
- git clone
- git clone –help
- git clone adres . – polecenie z kropką na końcu – utworzenie kopii w bieżącym folderze
- git clone adres – bez kropki na końcu – utworzenie kopii w podfolderze
- git clone -b <branch name>
-
git clone -b feature/version-3.0 ssh://git@git…
-
- git add
- git add –help
- git add -A / git add –all
- git add .
- git branch
- git branch –help
- git branch -a – listuje list branchy
- git config
- git config –help
- git config -l – wyświetla ustawienia parametrów pracy
- git config –global – w Window7 zapisuje zmienne konfiguracyjne w pliku C:/User/username/.gitconfig
- git config –global user.name „Name”
- git config –global user.email hello@webscene.pl
- git config user.name „Name” – zapisanie ustawień w repozytorium w którym wprowadzono komendę
- git config –list – wykaz zapisanych ustawień
- git help
- git help add
- git help branch
- git help clone
- git status
- git shortlog
- git shortlog -s -n – uczestnicy projektu
- git shortlog – s -n | wc -l
- git remote – sprawdzenie czy nie ma zdalnego repozytorium w projekcie
- git remote -v – listuje adres (fetch) i (push)
- git ls-remote – listuje listę
- git remote add origin <url repository> – dodanie repozytorium do remote
- git rebase –
zakomitowanie zmian nie na tym branch co trzeba
- git reset HEAD- –soft – cofamy ostatni zrobiony commit,
- git stash,
- wejście na poprawny branch i git stash apply,
- rozwiązujemy ewentualne konflikty
- git add -A
- git commit –amend
- git push –force
- git checkout feature/new-menu
- git rebase master – bierze koncówkę branch feature.. i doczepia i doczepia do ostatniego commita na masterze – tylko podczas indywidualnej pracy bo zmienia to historie
zmiana danych autora:
- git config –global –edit
- it commit –amend –reset-author
- git log – sprawdzanie zmian wprowadzonych w repo
- –pretty – formatowanie i jego wartości:
- oneline – id, opis
- short – id, opis, autor
- medium – id, opis, autor, data rewizji
- full – id, opis, autor, osoba dołączająca rewizję do projektu
- fuller – id, opis, autor, osoba dołączajaca rewizję do projektu, data wykonania rewizji, data dołączenia rewizji
- email – podstawowe info w formacie email
- raw – info powiązań rewizji (parent, tree)
- format – formatowane określone przez użytkownika
- –abbrev-commit –abbrev=6 – skrócenie skrótów SHA-1
- filtracja
- -n – liczba rewizji, -6 – sześć ostatnich rewizji
- –since=”yyyy-mm-dd” – począytkowa data
- –until=”yyyy-mm-dd” – końcowa data
- –author=name – rewizje konkretnej osoby
- git log –pretty=oneline –since=”2012-06-01″ –until=”2-12-06-08″ | wc -l
- git log – 66 –author=dave
- –pretty – formatowanie i jego wartości:
- git checkout
- git checkout -f – przywrócenie stanu plików z zachowaniem historii zmian do stanu detached HEAD
- git checkout -f SHA-1 – przywrócenie stanu plików ze wskazanej rewizji z zachowaniem historii zmian
- git reset –hard / git reset –hart HEAD – przywrócenie stanu ostatniej rewizji
- git reset –hard SHA-1 – przywrócenie stanu ze wskazanej rewizji, usuwa historię późnijeszych zmian i rewizji
git add -A + git commit -m „comment”
git add . + git commit -a -m „comment”
- repozytorium – repository – katalog z projektem objęty kontrola GITa
- commit – operacja zatwierdzenia zmian
- rewizja – commit, revision – zapisanie zatwierdzonych zmian, zawiera:
- id rewizji
- data, godzina wykonania
- id poprzednich rewizji
- info o modyfikacjach
- obszar roboczy – working area, working directory – cała zawartość projektu poza folderem .git
- snapshot – bieżący stan wszytskich plików w folderze roboczym
git shortlog -s -n | wc -l
find . -type f -print | grep -v -E '/\.git/’ | wc -l
git log –pretty=oneline –since=”2012-06-01″ –until=”2-12-06-08″ | wc -l
polecanie linuxowe:
- q – wyjście z polecenia
polecenia konsoli:
- mkdir name
PRACA GRUPOWA
udostępnienie własnych rewizji innym uczestnikom projektu.
na serwerze współdzielone repozytorium
każdy posiada lokalna kopię repozytorium na której pracuje, zatwierdzając zmiany commit i wysyłając je na serwer push, po wysłaniu zmiana staje się dostępna na serwerze
sprawdzenie różnic pomiędzy dwoma dowolnymi rewizjami – ?
- pobranie aktualnego stanu repozytorium z serwera do lokalnego repozytorium – git pull
- zatwierdzanie zmian w lokalnym repozytorium – git commit
- wysłanie lokalnego repozytorium na serwer – git push
zmodyfikowanie tej samej liniki kodu przez 2 użytkowników powoduje zatrzymanie przesyłania danych z lub na serwer. Należy usunąć konflikt inastępnie commit, pull, push
Ciekawe artykuły
Hope this helps and happy coding :)