diff --git a/README.md b/README.md index dd47e83..1a24d22 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,23 @@ GIT instrukcja: - git config --global user.name - git config --global user.email - git config --global -l + git config --global user.name + git config --global user.email + git config --global -l Tworzenie nowego repozytorium z linii poleceń: - touch README.md - git init - git checkout -b main - git add README.md - git commit -m "first commit" + touch README.md + git init + git checkout -b main + git add README.md + git commit -m "first commit" Wypychanie istniejącego repozytorium z linii poleceń: - git remote add origin https://gitea.raspinetwork.com/ - git push -u origin main + git remote add origin https://gitea.raspinetwork.com/ + git push -u origin main Przyklad połaczenie zmian z masterem: @@ -37,7 +37,7 @@ Przyklad połaczenie zmian z masterem: 13. git checkout master 14. git merge nasz_branch -- łączenie dodanie naszych zmian na masterze - Przyklad 2: +Przyklad 2: # Przełączanie się na główną gałąź git checkout master @@ -60,12 +60,12 @@ Przyklad połaczenie zmian z masterem: git push origin nowa_funkcjonalnosc - Dobre praktyki: +Dobre praktyki: 1. Stosujemy Rebase dla liniowej historii commitów 2. - Zdalne Repo: +Zdalne Repo: 1. git remote -v --podgląd 2. git pull --pobranie najnowszych zmian @@ -79,7 +79,7 @@ Przyklad połaczenie zmian z masterem: Lista komend: - basics: +basics: git init – inicjalizuje repozytorium GIT w katalogu git clone {adres repozytorium} – klonuje repozytorium do katalogu @@ -90,7 +90,7 @@ Lista komend: git config –global core.pager '{nazwa}' – ustawia program do przeglądania logów (brak w konsoli) - repo: +repo: git fetch -p – kasuje branche już nie istniejąca na głównym repo git fetch {nazwa remota} – pobiera listę zmian z innego repozytorium (w tym pokazuje nowe gałęzie) @@ -125,146 +125,142 @@ commit: git commit – tworzy commita z aktualnie zmienionych plików git commit -m „wiadomosc” – tworzy commmita z podaną w cudzysłowach wiadomością - -git commit –amend -m „{wiadomość}” – umożliwia zmianę ostatniego commita -git commit –amend -m „dsfsdf” – modyfikuje komentarz ostatniego commita -git commit –date=”2017-08-18T13:23:41″ -m „” – comit ze wskazaną datą -git commit -n – pomija git hooks -git revert {numer commita} – tworzy nowego commita z cofnięciem zmian ze wskazanego commita -git amend – zmienia poprzedniego commita -git shortlog -sn – ile commitów zrobionych przez userów + git commit –amend -m „{wiadomość}” – umożliwia zmianę ostatniego commita + git commit –amend -m „dsfsdf” – modyfikuje komentarz ostatniego commita + git commit –date=”2017-08-18T13:23:41″ -m „” – comit ze wskazaną datą + git commit -n – pomija git hooks + git revert {numer commita} – tworzy nowego commita z cofnięciem zmian ze wskazanego commita + git amend – zmienia poprzedniego commita + git shortlog -sn – ile commitów zrobionych przez userów log: -git log – wyświetla listę commitów (od najnowszego) -git log -{numer} wyświetla podaną liczbę ostatnich commitów -git log –oneline – wyświetla commity w postaci skróconej -git log -{numer} –oneline wyświetla podaną liczbę ostatnich commitów w postaci skróconej -git log –graph –decorate –oneline – pokazuje graficzny obraz zmian -git log –author={nazwa użytkownika} – pokazuje commity danego użytkownika -git shortlog – lista commitów użytkowników -git shortlog -s -n – lista użytkowników repozytorium -git llog –after=2016-08-16 –before=2016-08-30 – commity z podanego zakresu (–until starsze od podanej daty, –since z pred podanej daty) -git log –name-status – podaje statuz zmian przy nazwie pliku (add, mod, delete) -git log –stat – + statystyki zmian w plikach (–shortstat bez ++++—) -git log {commit1}..{commit} –no-merges – pokazuje zmiany pomiędzy 2 commitami bez info o mergach -git log — {plik/katalog} – log dla pojedyńczego pliku lub wszystkich plików z katalogu -git log -5 –pretty=tformat: –numstat – satystyki zmian w 5 commitach -git log –no-merges –pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' –date=iso – -git log –pretty=format:'* %s (%an)' -n 10 – pokazuje tylko nazwy commitów -git log –pretty=oneline -15 | awk '{print $2}' | sort | uniq | grep -i {ticket} | sed 's/[(.*)]/\1/g' – pokaże tylko nazwy ticketów (gdy message zgody z formatem [NAME-111] some message) -git log –grep {nazwa} – szuka commita zawierającego podany tekst -git log –author={autor} –name-only – pokazuje commity wykonane przez autora wraz ze zmodyfikowanymi plikami -git log master..develop – pokazuje różnicę między branchami -git log –pretty=format:'%Cred%h%Creset %C(bold blue)<%an>%Creset%C(yellow)%d%Creset %Cgreen(%cr)%Creset%n%w(80,8,8)%s' –graph – drzewko logów -git log –pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' –date=iso – pokazuje logi (hash, data+czas, autor, opis) -log –pretty=format:'%C(yellow)%p..%h %C(white dim)%cd %<|(49,trunc)%an %C(reset)%s' –date=short –abbrev=8 –no-merges – logi z zakresem branchy -git log –oneline {branch1} –not {branch2} – pokazuje różnice w commitach między branchami (branche których brakuje w branch2 a są w branch1) -git log –oneline –grep {branch} –name-only | grep -v {branch} | sort | uniq – pokazuje tylko zmienione pliki dla podanego brancha - - - merge: - -git merge {nazwa gałęzi} – dołączenie zmian ze wskazanej gałęzi -git merge {nazwa remota}/{nazwa gałęzi} – dołączenie zmian ze wskazanego remota i gałęzi -git merge –abort – przerywa łączenie (możliwe, gdy wystąpią konflikty) -git merge –continue – po rozwiązaniu konfliktów zapisuje zmiany -git merge –revert – cofa wszystkie wprowadzone zmiany - - - rebase: - -git rebase {nazwa gałęzi} – dołączenie zmian ze wskazanej gałęzi z zachowaniem kolejności wprowadzania zmian -git rebase {nazwa remota}/{nazwa gałęzi} – dołączenie zmian ze wskazanego repozytorium i gałęzi z zachowaniem kolejności wprowadzania zmian -git rebase –abort – przerywa łączenie (możliwe, gdy wystąpią konflikty) -git rebase –continue – po rozwiązaniu konflitów zapisuje zmiany -git rebase –interactive {commit} – pozwala wybrać commity które zostaną dołączone (lub modyfikować) -git rebase –interactive '{hash}^' – umożliwia edycję commitów do podanego hasha - - - diff: - -git diff –name-only {gałąź 1} {gałąź 2} – porównanie dwóch gałęzi -git diff –cached – pokazuje wszystkie gotowe do commitu zmiany -git diff –cached | grep -wi {fraza} – szuka podanej frazy w commicie -git diff –cached | grep -wiHn -C 10 {fraza} – jw ale pokazuje 10 lini przed i po znalezieniu + numery linni i nazwę pliku -git diff –name-only HEAD HEAD~14 – pokazuje zmieniony pliki z 14 ostatnich commitów -git diff {commit1}..{commit2} – pokazuje różnicę między 2 commitami -git diff {commit1}..{commit2} {plik} – pokazuje różnicę między 2 commitami dla podanego pliku -git diff {commit} — plik – pokazuje zmiany w pliku od podanego commita -git diff-index –name-only –cached –diff-filter=ACMR HEAD -git diff {commit} – różnica od podanego commita -git diff {gałąź 1} {gałąź 2} — {plik} – dif dla pojedynczego pliku między gałęziami -git diff {plik} – pokazuje zmiany dokonane na pliku (nie zacommitowane) -git diff . – pokazuje zmiany dokonane na wszystkich zmienionych plikach -–color-words – pokaże bez +/- -git diff -p -R –no-color | grep -E „^(diff|(old|new) mode)” –color=never | git apply – resetuje zmiany w atrybutach plików - - - show: - -git show {commit} – szczegóły podanego commita -git show –name-only {commit} – nazwy zmodyfikowanych plików w commicie -git show –name-only {commit} – pokazuje tylko listę zmodyfikowanych plików z commita -git show {commit} – pokazuje zmiany w commicie -git show HEAD:{plik} – pokazuje zmiany tylko w konkretnym pliku -git show {commit} –name-only -p -5 – pokazuje 5 poprzednich comitów od podanego -–color-words – pokaże bez +/- - - - branch: - -git branch – lista gałęzi w repozytorium -git branch -a – pokazuje listę wszystkich gałęzi (łącznie z tymi z repo, same z repo -r) --r – tylko gałęzie zdalne -git branch -d {nazwa gałęzi} – usuwa wskazaną gałąź -git branch –merged – lista zmergowanych branchy -git branch –merged | git branch -d – kasuje wszystkie zmergowane branche -git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d – kasuje wszystkie nie używane/ nie istniejące branche -git branch rename {1} {2} – zmiana nazwy brancha -git branch | grep -v „master” | xargs git branch -D – kasuje wszystkie branche z wyjątkiem mastera -git checkout {nazwa gałęzi} – przełącza na podaną gałąź -git checkout -b {nazwa gałęzi} – tworzy nową gałąź o podanej nazwie i automatycznie przełącza się na niego -git checkout -b {nazwa gałęzi} {nazwa remota}/{nazwa gałęzi} – tworzy nową gałąź o podanej nazwie, pobiera zmiany ze wskazanego repozytorium i gałęzi i automatycznie przełącza się na niego -git checkout {nazwa pliku} – cofa zmiany na podanym pliku -git branch rename {stara nazwa} {nowa nazwa} – zmiana nazwy brancha -git branch -m {stara nazwa} {nowa nazwa} – zmiana nazwy brancha - - - stash: - -git stash – zapisuje nowe i zmodyfikowane pliki do pamięci podręcznej -git stash pop – przywraca zapisane pliki z pamięci podręcznej -git stash pop –index 1 -git stash pop –index 454aa619 -git stash pop –index stash@{1} -git stash pop 1 -git stash pop 454aa619 -git stash pop stash@{1} -git stash save „{tekst komentarza}” – zapisuje stash z komentarzem -git stash show stash@{1}– pokazuje zachowane zmiany -git stash list – lista zachowanych zmian -git stash branch {name} – stworzy nową gałąź, pobierze ostatnią wersję plików -git stash push -m {message} {plik} – stashuje z komentarzem wskazany plik - - - tag: + git log – wyświetla listę commitów (od najnowszego) + git log -{numer} wyświetla podaną liczbę ostatnich commitów + git log –oneline – wyświetla commity w postaci skróconej + git log -{numer} –oneline wyświetla podaną liczbę ostatnich commitów w postaci skróconej + git log –graph –decorate –oneline – pokazuje graficzny obraz zmian + git log –author={nazwa użytkownika} – pokazuje commity danego użytkownika + git shortlog – lista commitów użytkowników + git shortlog -s -n – lista użytkowników repozytorium + git llog –after=2016-08-16 –before=2016-08-30 – commity z podanego zakresu (–until starsze od podanej daty, –since z pred podanej daty) + git log –name-status – podaje statuz zmian przy nazwie pliku (add, mod, delete) + git log –stat – + statystyki zmian w plikach (–shortstat bez ++++—) + git log {commit1}..{commit} –no-merges – pokazuje zmiany pomiędzy 2 commitami bez info o mergach + git log — {plik/katalog} – log dla pojedyńczego pliku lub wszystkich plików z katalogu + git log -5 –pretty=tformat: –numstat – satystyki zmian w 5 commitach + git log –no-merges –pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' –date=iso – + git log –pretty=format:'* %s (%an)' -n 10 – pokazuje tylko nazwy commitów + git log –pretty=oneline -15 | awk '{print $2}' | sort | uniq | grep -i {ticket} | sed 's/[(.*)]/\1/g' – pokaże tylko nazwy ticketów (gdy message zgody z formatem [NAME-111] some message) + git log –grep {nazwa} – szuka commita zawierającego podany tekst + git log –author={autor} –name-only – pokazuje commity wykonane przez autora wraz ze zmodyfikowanymi plikami + git log master..develop – pokazuje różnicę między branchami + git log –pretty=format:'%Cred%h%Creset %C(bold blue)<%an>%Creset%C(yellow)%d%Creset %Cgreen(%cr)%Creset%n%w(80,8,8)%s' –graph – drzewko logów + git log –pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' –date=iso – pokazuje logi (hash, data+czas, autor, opis) + log –pretty=format:'%C(yellow)%p..%h %C(white dim)%cd %<|(49,trunc)%an %C(reset)%s' –date=short –abbrev=8 –no-merges – logi z zakresem branchy + git log –oneline {branch1} –not {branch2} – pokazuje różnice w commitach między branchami (branche których brakuje w branch2 a są w branch1) + git log –oneline –grep {branch} –name-only | grep -v {branch} | sort | uniq – pokazuje tylko zmienione pliki dla podanego brancha + + +merge: + + git merge {nazwa gałęzi} – dołączenie zmian ze wskazanej gałęzi + git merge {nazwa remota}/{nazwa gałęzi} – dołączenie zmian ze wskazanego remota i gałęzi + git merge –abort – przerywa łączenie (możliwe, gdy wystąpią konflikty) + git merge –continue – po rozwiązaniu konfliktów zapisuje zmiany + git merge –revert – cofa wszystkie wprowadzone zmiany + + +rebase: + + git rebase {nazwa gałęzi} – dołączenie zmian ze wskazanej gałęzi z zachowaniem kolejności wprowadzania zmian + git rebase {nazwa remota}/{nazwa gałęzi} – dołączenie zmian ze wskazanego repozytorium i gałęzi z zachowaniem kolejności wprowadzania zmian + git rebase –abort – przerywa łączenie (możliwe, gdy wystąpią konflikty) + git rebase –continue – po rozwiązaniu konflitów zapisuje zmiany + git rebase –interactive {commit} – pozwala wybrać commity które zostaną dołączone (lub modyfikować) + git rebase –interactive '{hash}^' – umożliwia edycję commitów do podanego hasha + + +diff: + + git diff –name-only {gałąź 1} {gałąź 2} – porównanie dwóch gałęzi + git diff –cached – pokazuje wszystkie gotowe do commitu zmiany + git diff –cached | grep -wi {fraza} – szuka podanej frazy w commicie + git diff –cached | grep -wiHn -C 10 {fraza} – jw ale pokazuje 10 lini przed i po znalezieniu + numery linni i nazwę pliku + git diff –name-only HEAD HEAD~14 – pokazuje zmieniony pliki z 14 ostatnich commitów + git diff {commit1}..{commit2} – pokazuje różnicę między 2 commitami + git diff {commit1}..{commit2} {plik} – pokazuje różnicę między 2 commitami dla podanego pliku + git diff {commit} — plik – pokazuje zmiany w pliku od podanego commita + git diff-index –name-only –cached –diff-filter=ACMR HEAD + git diff {commit} – różnica od podanego commita + git diff {gałąź 1} {gałąź 2} — {plik} – dif dla pojedynczego pliku między gałęziami + git diff {plik} – pokazuje zmiany dokonane na pliku (nie zacommitowane) + git diff . – pokazuje zmiany dokonane na wszystkich zmienionych plikach –color-words – pokaże bez +/- + git diff -p -R –no-color | grep -E „^(diff|(old|new) mode)” –color=never | git apply – resetuje zmiany w atrybutach plików + + +show: + + git show {commit} – szczegóły podanego commita + git show –name-only {commit} – nazwy zmodyfikowanych plików w commicie + git show –name-only {commit} – pokazuje tylko listę zmodyfikowanych plików z commita + git show {commit} – pokazuje zmiany w commicie + git show HEAD:{plik} – pokazuje zmiany tylko w konkretnym pliku + git show {commit} –name-only -p -5 – pokazuje 5 poprzednich comitów od podanego –color-words – pokaże bez +/- + + +branch: + + git branch – lista gałęzi w repozytorium + git branch -a – pokazuje listę wszystkich gałęzi (łącznie z tymi z repo, same z repo -r) -r – tylko gałęzie zdalne + git branch -d {nazwa gałęzi} – usuwa wskazaną gałąź + git branch –merged – lista zmergowanych branchy + git branch –merged | git branch -d – kasuje wszystkie zmergowane branche + git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d – kasuje wszystkie nie używane/ nie istniejące branche + git branch rename {1} {2} – zmiana nazwy brancha + git branch | grep -v „master” | xargs git branch -D – kasuje wszystkie branche z wyjątkiem mastera + git checkout {nazwa gałęzi} – przełącza na podaną gałąź + git checkout -b {nazwa gałęzi} – tworzy nową gałąź o podanej nazwie i automatycznie przełącza się na niego + git checkout -b {nazwa gałęzi} {nazwa remota}/{nazwa gałęzi} – tworzy nową gałąź o podanej nazwie, pobiera zmiany ze wskazanego repozytorium i gałęzi i automatycznie przełącza się na niego + git checkout {nazwa pliku} – cofa zmiany na podanym pliku + git branch rename {stara nazwa} {nowa nazwa} – zmiana nazwy brancha + git branch -m {stara nazwa} {nowa nazwa} – zmiana nazwy brancha + + +stash: + + git stash – zapisuje nowe i zmodyfikowane pliki do pamięci podręcznej + git stash pop – przywraca zapisane pliki z pamięci podręcznej + git stash pop –index 1 + git stash pop –index 454aa619 + git stash pop –index stash@{1} + git stash pop 1 + git stash pop 454aa619 + git stash pop stash@{1} + git stash save „{tekst komentarza}” – zapisuje stash z komentarzem + git stash show stash@{1}– pokazuje zachowane zmiany + git stash list – lista zachowanych zmian + git stash branch {name} – stworzy nową gałąź, pobierze ostatnią wersję plików + git stash push -m {message} {plik} – stashuje z komentarzem wskazany plik + + +tag: -git tag -l – lista tagów -git tag -a {} -m '{}' – -git tag –sort=v:refname | tail -2 | xargs printf „%s..%s” | xargs git log –no-merges –pretty=format:%s – wyświetla wszystkie commity między 2 ostatnimi tagami (| grep -o „SOC-[0-9]*” | sort –unique** – tickety) -git tag -l „{pattern}” – lista tagów pasująca do wzorca -git tag -d {tag} && git push origin :refs/tags/{tag} – kasuje taga lokalnie + repo -git lasttag – pokazuje ostatniego taga - - - Inne: -git reset –soft HEAD~3; git commit -m – pozwala na cofnięcie się 3 commity do tyłu, i połączenie ich w jeden (git commit –amend) -git rebase -i {commit} – j/w ale commity wybierane ręcznie -git log -i -1 –pretty=”format::%an <%ae>\n” –author=”$1″ – info o userze -git show -s –pretty='tformat::%h (%s, %ad)' –date=short – info o branchu -git log -a –pretty=oneline | wc -l – ilość commitów -git fetch && git log –oneline HEAD..origin/$1 – ostatnie zmiany na podanym branchu -git shortlog HEAD..origin/$0 – kto ostatnio robił zmiany i jakie + git tag -l – lista tagów + git tag -a {} -m '{}' – + git tag –sort=v:refname | tail -2 | xargs printf „%s..%s” | xargs git log –no-merges –pretty=format:%s – wyświetla wszystkie commity między 2 ostatnimi tagami (| grep -o „SOC-[0-9]*” | sort –unique** – tickety) + git tag -l „{pattern}” – lista tagów pasująca do wzorca + git tag -d {tag} && git push origin :refs/tags/{tag} – kasuje taga lokalnie + repo + git lasttag – pokazuje ostatniego taga + + +Inne: + git reset –soft HEAD~3; git commit -m – pozwala na cofnięcie się 3 commity do tyłu, i połączenie ich w jeden (git commit –amend) + git rebase -i {commit} – j/w ale commity wybierane ręcznie + git log -i -1 –pretty=”format::%an <%ae>\n” –author=”$1″ – info o userze + git show -s –pretty='tformat::%h (%s, %ad)' –date=short – info o branchu + git log -a –pretty=oneline | wc -l – ilość commitów + git fetch && git log –oneline HEAD..origin/$1 – ostatnie zmiany na podanym branchu + git shortlog HEAD..origin/$0 – kto ostatnio robił zmiany i jakie for branch in git branch -r | grep -v HEAD;do echo git show -s --format=\"%Cred%ci %C(green)%h %C(yellow)%cr %C(magenta)%an %C(blue)\" $branch | head -n 1 \\t$branch; done | sort -r – jakie branche sa na orginie, jak dawno i kto je tworzył \ No newline at end of file