diff --git a/other-sheets/git-cheat-sheet-pl.md b/other-sheets/git-cheat-sheet-pl.md new file mode 100644 index 0000000..898f59e --- /dev/null +++ b/other-sheets/git-cheat-sheet-pl.md @@ -0,0 +1,734 @@ + + +Git Cheat Sheet Polish +=============== +### Indeks +* [Konfiguracja](#konfiguracja) +* [Pliki Konfiguracyjne](#pliki-konfiguracyjne) +* [Tworzenie](#tworzenie) +* [Zmiany Lokalne](#zmiany-lokalne) +* [Wyszukiwanie](#wyszukiwanie) +* [Historia Commitów](#historia-commitów) +* [Gałęzie & Tagi](#gałęzie--tagi) +* [Uaktualnij & Opublikuj](#uaktualnij--opublikuj) +* [Połącz & Rebase](#połącz--rebase) +* [Cofnij](#cofnij) +* [Git Flow](#git-flow) + + +
+ +## Konfiguracja + +##### Wyświetl aktualną konfigurację: +``` +$ git config --list +``` +##### Wyświetl konfigurację repozytorium: +``` +$ git config --local --list +``` + +##### Wyświetl konfigurację globalną: +``` +$ git config --global --list +``` + +##### Wyświetl konfigurację systemową: +``` +$ git config --system --list +``` + +##### Ustaw nazwę do rozpoznawania autorstwa, podczas przeglądu historii wersji: +``` +$ git config --global user.name “[imię nazwisko]” +``` + +##### Ustaw adres email, który będzie przypisany do każdego znacznika historii: +``` +$ git config --global user.email “[poprawny-email]” +``` + +##### Ustaw automatyczne kolorowanie wiersza poleceń Git, aby ułatwić przegląd: +``` +$ git config --global color.ui auto +``` + +##### Ustaw edytor globalny dla commitów: +``` +$ git config --global core.editor vi +``` + +
+ +## Pliki Konfiguracyjne + +##### Plik konfiguracyjny dla określonego repozytorium [--local]: +``` +/.git/config +``` + +##### Własny plik konfiguracyjny [--global]: +``` +~/.gitconfig +``` + +##### Globalny plik konfiguracyjny [--system]: +``` +/etc/gitconfig +``` + +
+ +## Tworzenie + +##### Sklonuj istniejące repozytorium: + +Istnieją dwa sposoby: + +Przez SSH + +``` +$ git clone ssh://nazwa@domena.com/repo.git +``` + +Przez HTTP + +``` +$ git clone http://domena.com/nazwa/repo.git +``` + +##### Utwórz nowe repozytorium lokalne w bieżącej lokalizacji: +``` +$ git init +``` + +##### Utwórz nowe repozytorium lokalne w konkretnej lokalizacji: +``` +$ git init <ścieżka> +``` + +
+ +## Zmiany Lokalne + +##### Zmiany w katalogu roboczym: +``` +$ git status +``` + +##### Zmiany w śledzonych plikach: +``` +$ git diff +``` + +##### Zobacz zmiany/różnice w danym pliku: +``` +$ git diff +``` + +##### Dodaj wszystkie bieżące zmiany do następnego commitu: +``` +$ git add . +``` + +##### Dodaj kilka zmian w <plik> do następnego commitu: +``` +$ git add -p +``` + +##### Dodaj tylko wymienione pliki do następnego commitu: +``` +$ git add +``` + +##### Wykonaj commit z wszystkimi zmianami w śledzonych plikach: +``` +$ git commit -a +``` + +##### Wykonaj commit wcześniej dodanych plików: +``` +$ git commit +``` + +##### Wykonaj commit z wiadomością: +``` +$ git commit -m 'twoja wiadomość' +``` + +##### Wykonaj commit omijając staging area i dodaj wiadomość: +``` +$ git commit -am 'twoja wiadomość' +``` + +##### Wykonaj commit z wcześniejszą datą: +``` +$ git commit --date="`date --date='n dzień temu'`" -am "" +``` + +##### Zmodyfikuj ostatni commit:
+Nie modyfikuj opublikowanych commitów! + +``` +$ git commit -a --amend +``` + +##### Zmodyfikuj ostatni commit, ale pozostaw poprzednią wiadomość: +Nie modyfikuj opublikowanych commitów! + +```shell +$ git commit --amend --no-edit +``` + +##### Zmień czas commitera ostatniego commitu: +``` +GIT_COMMITTER_DATE="date" git commit --amend +``` + +##### Zmień czas autora ostatniego commitu: +```shell +$ git commit --amend --date="date" +``` + +##### Przenieś niecommitowane zmiany z bieżącej gałęzi do innej gałęzi:
+``` +$ git stash +$ git checkout gałąź2 +$ git stash pop +``` + +##### Przywróć przechowywane zmiany z powrotem do bieżącej gałęzi: +```shell +$ git stash apply +``` + +#### Przywróć dany stash z powrotem do bieżącej gałęzi: +- *{numer_stashu}* można uzyskać poprzez `git stash list` + +```shell +$ git stash apply stash@{numer_stashu} +``` + +##### Usuń ostatni zestaw przechowywanych zmian: +``` +$ git stash drop +``` + +
+ +## Wyszukiwanie + +##### Wyszukiwanie tekstu we wszystkich plikach w katalogu: +``` +$ git grep "Cześć" +``` + +##### W dowolnej wersji wyszukiwania tekstu: +``` +$ git grep "Cześć" v2.5 +``` + +##### Wyświetl commity, które wprowadziły określone słowo kluczowe: +``` +$ git log -S 'słowo kluczowe' +``` + +##### Wyświetl commity, które wprowadziły określone słowo kluczowe (używając wyrażenia regularnego): +``` +$ git log -S 'słowo kluczowe' --pickaxe-regex +``` + +
+ +## Historia Commitów + +##### Wyświetl wszystkie commity, zaczynając od najnowszego (wyświetli hash, informacje o autorze, datę commitu i tytuł commitu): +``` +$ git log +``` + +##### Wyświetl wszystkie commity (wyświetli tylko hash commitu i wiadomość commitu): +``` +$ git log --oneline +``` + +##### Wyświetl wszystkie commity określonego użytkownika: +``` +$ git log --author="użytkownik" +``` + +##### Wyświetl zmiany w czasie dla określonego pliku: +``` +$ git log -p +``` + +##### Wyświetl commity które są tylko w remote/branch po prawej stronie: +``` +$ git log --oneline .. --left-right +``` + +##### Kto zmienił, co i kiedy w <plik>: +``` +$ git blame +``` + +##### Wyświetl dziennik referencji: +``` +$ git reflog show +``` + +##### Usuń dziennik referencji: +``` +$ git reflog delete +``` +
+ +## Przenieś / Zmień nazwę + +##### Zmień nazwę pliku: + +Zmień nazwę z Index.txt na Index.html + +``` +$ git mv Index.txt Index.html +``` + +
+ +## Gałęzie & Tagi + +##### Wymień wszystkie lokalne gałęzie: +``` +$ git branch +``` + +#### Wymień lokalne/zdalne gałęzie: +``` +$ git branch -a +``` + +##### Wymień wszystkie zdalne gałęzie: +``` +$ git branch -r +``` + +##### Zmień gałąź HEAD: +``` +$ git checkout +``` + +##### Przełącz pojedynczy plik z innej gałęzi: +``` +$ git checkout -- +``` + +##### Utwórz i zmień na nową gałąź: +``` +$ git checkout -b +``` + +##### Zmień na poprzednią gałąź, bez podawania konkretnej nazwy: +``` +$ git checkout - +``` + +##### Utwórz nową gałąź z istniejącej już gałęzi i przełącz na nową gałąź: +``` +$ git checkout -b +``` + + +#### Przełącz i utwórz nową galąź z istniejącego commitu: +``` +$ git checkout -b +``` + + +##### Utwórz nową gałąź na podstawie aktualnej gałęzi HEAD: +``` +$ git branch +``` + +##### Utwórz nową gałąź śledzącą na podstawie gałęzi zdalnej: +``` +$ git branch --track +``` + +##### Usuń gałąź lokalną: +``` +$ git branch -d +``` + +##### Zmień nazwę obecnej gałęzi: +```shell +$ git branch -m +``` + +##### Wymuś usunięcie gałęzi lokalnej: +Utracisz niepołączone zmiany! + +``` +$ git branch -D +``` + +##### Oznacz `HEAD` tagiem: +``` +$ git tag +``` + +##### Oznacz `HEAD` tagiem i otwórz edytor, aby napisać wiadomość: +``` +$ git tag -a +``` + +##### Oznacz `HEAD` tagiem z wiadomością: +``` +$ git tag -am 'twoja wiadomość' +``` + +##### Wyświetl wszystkie tagi: +``` +$ git tag +``` + +##### Wyświetl wszystkie tagi wraz z ich wiadomościami (wiadomość tagu lub wiadomość commitu jeśli tag nie ma wiadomości): +``` +$ git tag -n +``` + +
+ +## Uaktualnij & Opublikuj + +##### Wyświetl wszystkie obecnie skonfigurowane repozytoria zdalne: +``` +$ git remote -v +``` + +##### Wyświetl informacje o repozytorium: +``` +$ git remote show +``` + +##### Dodaj nowe zdalne repozytorium o nazwie <repozytorium>: +``` +$ git remote add +``` + +##### Zmień nazwę zdalnego repozytoriumy, z <repozytorium> na <nowe_repozytorium>: +``` +$ git remote rename +``` + +##### Usuń repozytorium: +``` +$ git remote rm +``` + +Uwaga: git remote rm nie usuwa zdalnego repozytorium z serwera. Po prostu usuwa zdalne repozytorium i jego referencje z lokalnego repozytorium. + +##### Pobierz wszystkie zmiany z <repozytorium>, ale nie integruj ich z HEAD: +``` +$ git fetch +``` + +##### Pobierz zmian i bezpośrednio połącz/zintegruj z HEAD: +``` +$ git remote pull +``` + +##### Pobierz wszystkie zmiany z HEAD do lokalnego repozytorium: +``` +$ git pull origin master +``` + +##### Pobierz wszystkie zmiany z HEAD do lokalnego repozytorium bez łączenia ich: +``` +$ git pull --rebase +``` + +##### Opublikuj lokalne zmiany w repozytorium zdalnym: +``` +$ git push remote +``` + +##### Usuń gałąź w repozytorium zdalnym: +``` +$ git push : (od Git v1.5.0) +``` +lub +``` +$ git push --delete (od Git v1.7.0) +``` + +##### Opublikuj swoje tagi: +``` +$ git push --tags +``` +
+ +#### Ustaw globalne narzędzie do scalania jako Meld (edytor): +```bash +$ git config --global merge.tool meld +``` + +##### Uzyj narzędzia Meld, aby rozwiązywać konflikty: +``` +$ git mergetool +``` + +## Połącz & Rebase + +##### Połącz gałąź z aktualnym HEAD: +``` +$ git merge +``` + +#### Wyświetl połączone gałęzie: +``` +$ git branch --merged +``` + +##### Zrebase'uj obecny HEAD w <gałąź>:
+Nie rebase'uj opublikowanych commitów! + +``` +$ git rebase +``` + +##### Przerwij rebase: +``` +$ git rebase --abort +``` + +##### Kontynuuj rebase po rozwiązaniu konfliktów: +``` +$ git rebase --continue +``` + +##### Użyj swojego edytora do ręcznego rozwiązywania konfliktów i (po rozwiązaniu) oznacz plik jako rozwiązany: +``` +$ git add +``` + +``` +$ git rm +``` + +##### Łączenie commitów: +``` +$ git rebase -i +``` + +Teraz zastąp to, + +``` +pick +pick +pick +``` + +tym, + +``` +pick +squash +squash +``` +
+ +## Cofnij + +##### Odrzuć wszystkie lokalne zmiany w twoim katalogu roboczym: +``` +$ git reset --hard HEAD +``` + +##### Usuń wszystkie pliki ze staging area(czyli cofnij ostatnie `git add`): +``` +$ git reset HEAD +``` + +##### Odrzuć lokalne zmiany w określonym pliku: +``` +$ git checkout HEAD +``` + +##### Cofnij commit (tworząc nowy commit z przeciwnymi zmianami): +``` +$ git revert +``` + +##### Zresetuj wskaźnik HEAD do poprzedniego commitu i odrzuć wszystkie zmiany od tego czasu: +``` +$ git reset --hard +``` + +##### Zresetuj wskaźnik HEAD do bieżącego stanu zdalnej gałęzi: +``` +$ git reset --hard np., upstream/master, origin/my-feature +``` + +##### Zresetuj wskaźnik HEAD do poprzedniego commitu i zachowaj wszystkie zmiany jako zmiany niestage'owane: +``` +$ git reset +``` + +##### Zresetuj wskaźnik HEAD do poprzedniego commitu i zachowaj niecommitowane zmiany lokalne: +``` +$ git reset --keep +``` + +##### Usuń pliki, które zostały przypadkowo zcommitowane przed dodaniem ich do .gitignore: +``` +$ git rm -r --cached . +$ git add . +$ git commit -m "remove xyz file" +``` +
+ +## Git-Flow +Poprawione [Git-flow](https://github.com/petervanderdoes/gitflow-avh) + +### Indeks +* [Instalacja](#instalacja) +* [Pierwsze Kroki](#pierwsze-kroki) +* [Funkcjonalności](#funkcjonalności) +* [Utwórz Wydanie](#utwórz-wydanie) +* [Hotfiksy](#hotfiksy) +* [Komendy](#komendy) + +
+ +### Instalacja +###### Musisz mieć działającą instalację git jako warunek wstępny. Git flow działa na OSX, Linuxie i Windowsie. + +##### OSX Homebrew: +``` +$ brew install git-flow-avh +``` + +##### OSX Macports: +``` +$ port install git-flow +``` + +##### Linux (oparty na Debianie): +``` +$ sudo apt-get install git-flow +``` + +##### Windows (Cygwin): +###### Potrzebujesz wget oraz util-linux żeby zainstalować git-flow. +```bash +$ wget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install | bash +``` +
+ +### Pierwsze Kroki +###### Git flow musi zostać zainicjowany, aby dostosować konfigurację projektu do własnych potrzeb. Zacznij używać git-flow inicjalizując go wewnątrz istniejącego repozytorium git: +##### Inicjalizacja: +###### Będziesz musiał odpowiedzieć na kilka pytań dotyczących konwencji nazewnictwa dla twoich gałęzi. Zaleca się używanie wartości domyślnych. +```shell +git flow init +``` +lub +###### Żeby użyć ustawień domyślnych +```shell +git flow init -d +``` +
+ +### Funkcjonalności +###### Twórz nowe funkcjonalności dla nadchodzących wydań. Zazwyczaj istnieją tylko w repozytoriach deweloperów. +##### Utwórz nową funkcjonalność: +###### Ta czynnośc tworzy nową gałąź funkcjonalności wzorowaną na 'develop' i zmienia na tę gałąź. +``` +git flow feature start MOJAFUNKCJA +``` + +##### Ukończ funkcjonalność: +###### Dokończ tworzenie funkcjonalności. Ta czynność wykonuje następujące zadania: +###### 1) Łączy MOJAFUNKCJA w 'develop'. +###### 2) Usuwa gałąź funkcjonalności. +###### 3) Zmienia z powrotem na gałąź 'develop'. +``` +git flow feature finish MOJAFUNKCJA +``` + +##### Publikowanie funkcji: +###### Tworzysz funkcjonalność w ramach współpracy? Opublikuj funkcjonalność na zdalnym serwerze, aby mogli z niej korzystać inni użytkownicy. +``` +git flow feature publish MOJAFUNKCJA +``` + +##### Pobieranie opublikowanej funkcji: +###### Pobierz funkcję opublikowaną przez innego użytkownika. +``` +git flow feature pull origin MOJAFUNKCJA +``` + +##### Śledź funkcję na origin: +###### Możesz śledzić funkcję na origin używając: +``` +git flow feature track MOJAFUNKCJA +``` +
+ +### Utwórz Wydanie +###### Wspiera przygotowanie nowego wydania produkcyjnego. Umożliwia poprawki drobnych błędów i przygotowanie meta-danych do wydania. + +##### Rozpocznij wydanie: +###### Aby rozpocząć wydanie, użyj polecenia git flow release. Tworzy ono gałąź wydania utworzoną z gałęzi 'develop'. Opcjonalnie możesz podać hash SHA-1 commitu [BASE], od którego rozpocznie się wydanie. Commit musi znajdować się w gałęzi 'develop'. +``` +git flow release start RELEASE [BASE] +``` +###### Rozsądnie jest opublikować gałąź release po jej utworzeniu, aby umożliwić commitowanie wydania innym developerom. Zrób to podobnie do publikowania funkcji za pomocą polecenia: +``` +git flow release publish RELEASE +``` +###### (Możesz śledzić zdalne wydanie za pomocą komendy: ```git flow release track RELEASE```) + +##### Kończenie wydania: +###### Kończenie wydania jest jednym z głównych kroków w rozgałęzianiu git. Wykonuje on kilka czynności: +###### 1) Łączy gałąź wydania z powrotem w gałąź 'master' +###### 2) Taguje wydanie jego nazwą +###### 3) Łączy gałąź wydania z powrotem w gałąź 'develop' +###### 4) Usuwa gałąź wydania +``` +git flow release finish RELEASE +``` +###### Nie zapomnij spushować swoich tagów używając ```git push --tags``` + +
+ +### Hotfiksy +###### Hotfiksy powstają w wyniku konieczności natychmiastowego działania w przypadku niepożądanego stanu wersji produkcyjnej. Mogą być odgałęzione od odpowiedniego znacznika na gałęzi głównej, która oznacza wersję produkcyjną. + +##### Początek Git flow hotfiksa: +###### Tak jak inne komendy git flow, hotfiks rozpoczyna się: +``` +$ git flow hotfix start VERSION [BASENAME] +``` +###### Argument "version" oznacza nazwę nowego wydania hotfiksa. Opcjonalnie możesz określić nazwę bazową, od której chcesz rozpocząć. + +##### Kończenie hotfiksa: +###### Po ukończeniu hotfiksa zostaje on scalony z powrotem do wersji rozwojowej i głównej. Dodatkowo główne złączenie jest oznaczane wersją hotfiksa. +``` +git flow hotfix finish VERSION +``` +
+ +### Komendy +

+ Git +

+
+ +### Schemat Git flow + +

+ Git +

+
\ No newline at end of file