Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Who am I ?
Name : Sławek Borowiec
Solution Architect & java frameworks trainer
Since 2005 – until now
@przodownikR1
Blog: ...
Week 2 : next stage : IDE + GIT
- jak skutecznie wykorzystać swoje IDE → czyli Twoje IDE.
- IDE, a narzędzia refaktoryzacy...
Twoje IDE – maksymalne wykorzystanie przez dewelopera
podpowiedzi (warnings,składnia,wydajność)
auto-uzupełnianie
skróty
p...
Eclipse
Tuning VM → eclipse.ini | sts.ini
Odpowiednie kodowanie
Automatyczny zapis przed budowaniem
Filtrowanie typów (Typ...
Codzienność ?? :)
Git – content tracking system – Git robi różnicę....
Nadzorowanie treści a nie plików
Wydajność
Solidność
Rozproszenie
Moż...
System kontroli wersji
source: http://programmers.stackexchange.com/questions/136079/are-there-any-statistics-that-show-th...
git vs svn, a rynek pracy
Localne
source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
Lokalne – łatwo pomylić
katalogi i zm...
Scentralizowane (svn, cvs, etc)
source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
Scentralizowa...
Rozproszone
source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
Rozproszone – kopiowane jest
loka...
Source :techidiocy.com
Source : www.vitaliypodoba.com
Instalacja i narzędzia
sudo apt-get install gedit-plugins → gedit plugins
gitk
eGit
meld
find
wc
powłoka : fish
git –versi...
Konfiguracja
git config {klucz} {wartość} -> odczyt i modyfikacja zmiennych, które opisują wszystkie funkcjonalności i zac...
Tworzenie synonimów
git config –global alias.logp 'log –graph –abbrev-commit –pretty=oneline'
git.igonore
Ignorowanie plików z przestrzeni roboczej
Korzystanie ze wzorców
nazwa katalogu (/)
nazwa pliku dopasowany lit...
Pojęcia
origin – nazwa zdalnego głównego repo
head – wskazuje nasze bieżące miejsce w branch'u
master – nazwa głównego bra...
Git Tworzenie repo
git init – tworzenie nowego → .git
git clone – kopiowanie istniejącego
git clone {url} {new_clone_repo_...
Github Quick setup
https://github.com/przodownikR1/testr2.git
echo "# testr2" >> README.md
git init
git add README.md
git ...
Git init, add, commit, status
git add – zmiana stanu pliku z nienadzorowanego
na nadzorowany
git add . == git add -A
git c...
Git rm
git rm odwrotność git add
git rm –cached {filename} – usuwa plik z
indeksu ale pozostawia do w przestrzeni
roboczej...
Git mv
mv fileOne fileTwo
git rm fileOne + git add fileTwo
==
git mv fileOne fileTwo
Git mv
mv fileOne fileTwo
git rm fileOne + git add fileTwo
==
git mv fileOne fileTwo
File status lifecycle
Stany pliku
Zatwierdzony - oznacza, że dane zostały bezpiecznie zachowane w Twojej lokalnej bazie danych.
Zmodyfikowany - ...
Source : http://tex.stackexchange.com/questions/70320/workflow-diagram
Git branch
Pozwala na pracę rozwojową prowadzoną w jakimś konkretnym celu
np. dodaniu nowej funkcjonalności lub poprawie b...
Git : reset, checkout
Przywracanie obszaru roboczego do stanu z wybranej rewizji
git reset –hard {rev} – późniejsze rewizj...
Logs
git log -p -5 → pokazuje różnice wprowadzone z każdą rewizją
Opcje :
- short
- full
- fuller
git log --pretty=oneline...
Przykład : logs
przodownik~/w/spring-boot (master| )$ git log --pretty=format:"%h - %an, %ar : %s" --author Rob✔
15:51
● 7...
Przykład : logs
--since 'yyyy-mm-dd' '| --until | --author | -n
--abbrev-commit - skrócenie SHA
--abbrev=4 - skrócenie SHA...
Tags
opisane (annotated tags)
- dane o autorze
- datę utworzenia
- komentarz
- SHA rewizji
lekkie (lightweight tags) → (.g...
Tags
git tag -a {nazwa} -m {komentarz} → (opisowy)
Znacznik musi być unikalny
git tag {nazwa} → (lekki)
git tag -d {nazwa}...
Kompresja
git archive --format=zip --output={fileName} SHA
Wygenerowanie skompresowanego archiwum
odpowiadającego danej re...
Git stash
Traktuj stash jako schowek czy skrytkę.
git stash list
git stash – dodanie do skrytki
git stash pop – z usunięci...
Git remote
Sprawdzanie zdalnych repozytoriów i tworzenie połączenia z nimi.
git remote | remote -v
git remote add origin {...
Git push
Wypychanie zmian do zdalnego repozytorium
git push -u origin master
przodownik ~/b/university_training (step13_te...
Git pull, fetch
Pobiera zmian ze zdalnego repo
git pull {repo_name} {branch_name}
git fetch {repo_name} – pobiera zmiany z...
Git merge
git merge {branchName} – przeniesienie zmian z gałęzi branchName do bieżącej
przodownik /t/gitRepo (master| )$✔ ...
Merge example - continue
przodownik /t/gitRepo (feature| )$✔ git merge master
Auto-merging main.java
CONFLICT (content): M...
Merge → conflicts
<<<<<HEAD - aktualna gałąź w której obecnie się znajdujesz.
<<<<<< ======= >>>>>> - usuwamy
git add .
gi...
Git rebase
Integrowanie zmian z jednej gałęzi do drugiej
jest możliwe dzięki operacji :
- merge -scalanie
- rebase – zmian...
Merge/Rebase source: http://git-scm.com/book/pl/v1/Ga%C5%82%C4%99zie-Gita-Zmiana-bazy
-merge
Git revert
git revert –no-edit {rev} – usunięcie zmian wprowadzonych przez daną
rewizje.
--no-edit = domyślny komentarz 'R...
Git diff
Porównujemy pliki, rewizje i całe branch'e
git diff –cached – co z indeksu trafi do repozytorium
git difftool –ca...
Git apply - łaty
git apply /home/przodownik/main.java.patch – wczytywanie łaty
(współpracuje z git diff, zasada : 'zaakcep...
Koniec :)
Dziękuje za uwagę :)
Upcoming SlideShare
Loading in …5
×

University day 2

508 views

Published on

University -> Next stage -> something about content tracking system, also about productive and efficient use of the ide.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

University day 2

  1. 1. Who am I ? Name : Sławek Borowiec Solution Architect & java frameworks trainer Since 2005 – until now @przodownikR1 Blog: http://przewidywalna-java.blogspot.com Hobby : Sport bikes & boxing & software engineering
  2. 2. Week 2 : next stage : IDE + GIT - jak skutecznie wykorzystać swoje IDE → czyli Twoje IDE. - IDE, a narzędzia refaktoryzacyjne, szablony, optymalne ustawienia, automatyzacja. - jak dobrać optymalny system kontroli wersji dla potrzeb projektu - instalacja, konfiguracja i praca z Git - ciągłe odnośniki oraz przypomnienie materiału z poprzedniego tygodnia. - jak zapewnić sobie bezpieczną i komfortową pracę na starcie wytwarzania, jak dotrwać do jego końca i na dodatek zachować zdrowie :)
  3. 3. Twoje IDE – maksymalne wykorzystanie przez dewelopera podpowiedzi (warnings,składnia,wydajność) auto-uzupełnianie skróty pluginy optymalizacja działania (uzyskiwanie pożądanej wydajności) generacja kodu testowanie łatwa integracja z systemami kontroli wersji debugowanie refaktoring
  4. 4. Eclipse Tuning VM → eclipse.ini | sts.ini Odpowiednie kodowanie Automatyczny zapis przed budowaniem Filtrowanie typów (Type Filters) Minimalizacja importów (Organize imports on save) Aktualizacja do najnowszej javy i wersji IDE Odchudzanie : startup & validation Wyłącznie sprawdzania pisowni Zamykanie niepotrzebnych projektów Wyłączenie auto-walidacji i auto-budowania projektu Wyłączenie niepotrzebnych deklaracji etykiet (SVN/CVS)
  5. 5. Codzienność ?? :)
  6. 6. Git – content tracking system – Git robi różnicę.... Nadzorowanie treści a nie plików Wydajność Solidność Rozproszenie Możliwość efektywnego zarządzania wielkimi projektami jak jądro Linuxa (szybkość i wolumen) Lokalność (praca jest możliwa nawet przy braku dostępu do sieci) Spójność (SHA-1) Protokoły : local (wygoda, zapis i odczyt) local : → git clone {filepath} | git clone {file:///home/przodownik/..} Secure Shell (SSH) (bezpieczeństwo,uwieżytelnienie, szyfrowanie, wygoda, zapis i odczyt, dostępny port, brak anonimowego dostępu) ssh : → git clone ssh://user@server/myProject.git (pozwala odczyt jak i zapis) Git (szybkość, brak uwieżytelnienia) HTTP (prostota,standard,HTTPS – szyfrowanie,otwarty na firewalls, ~szybkość) Serwery : GitHub , BitBucket
  7. 7. System kontroli wersji source: http://programmers.stackexchange.com/questions/136079/are-there-any-statistics-that-show-the-popularity-of-git-versus-svn Śledzenie zmian w kodzie ~Praca grupowa Przechowujemy : source code, properties, tests, niektóre binaria Nie przechowujemy : classes, plików tymczasowych, plików ide, plików zbędnych do odpalenia projektu itd..
  8. 8. git vs svn, a rynek pracy
  9. 9. Localne source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control Lokalne – łatwo pomylić katalogi i zmodyfikować niewłaściwą wersją lub pojedynczy plik. Podejście bardzo prymitywne i mało odporne na błędy,właściwie brak możliwości pracy grupowej.
  10. 10. Scentralizowane (svn, cvs, etc) source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control Scentralizowane – rozwiązuje problem pracy grupowej, możliwość utraty danych, w przypadku awarii serwera centralnego.
  11. 11. Rozproszone source : http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control Rozproszone – kopiowane jest lokalnie całe repozytorium. Możliwość swobodnego przełączania między zdalnymi repozytoriami. Łatwe odzyskiwanie danych po awarii. Szybkość pracy, komitujemy na lokalne repozytorium, a zmiany możemy wypchnąć na zdalne w dowolnym momencie, np. po skończeniu jakieś funkcjonalności
  12. 12. Source :techidiocy.com
  13. 13. Source : www.vitaliypodoba.com
  14. 14. Instalacja i narzędzia sudo apt-get install gedit-plugins → gedit plugins gitk eGit meld find wc powłoka : fish git –version find . -name .git -type d -exec rm -fr {} /: cherry-pick
  15. 15. Konfiguracja git config {klucz} {wartość} -> odczyt i modyfikacja zmiennych, które opisują wszystkie funkcjonalności i zachowania git. Plik : /etc/gitconfig: Widoczny dla wszystkich userów w systemie w odniesieniu do wszystkich lokalnych repozytoriów. git config –system Plik : ~/.gitconfig: Widoczny dla konkretnego użytkownika git config –global Plik : .git/config w aktualnym repo → odnosi się tylko do niego. Każdy poziom ma priorytet wyższy niż poziom poprzedni !! git config --global user.name "Sławomir Borowiec" git config --global user.email 'przodownikR1@gmail.com' git config --global core.editor vim git config --global merge.tool meld git config –list git help <polecenie>
  16. 16. Tworzenie synonimów git config –global alias.logp 'log –graph –abbrev-commit –pretty=oneline'
  17. 17. git.igonore Ignorowanie plików z przestrzeni roboczej Korzystanie ze wzorców nazwa katalogu (/) nazwa pliku dopasowany literalnie do wzorca ! → negacja dalsze części wzorca ..etc Gwiazdka (*) dopasowuje zero lub więcej znaków; [abc] dopasowuje dowolny znak znajdujący się wewnątrz nawiasu kwadratowego (w tym przypadku a, b lub c); znak zapytania (?) dopasowuje pojedynczy znak; nawias kwadratowy zawierający znaki rozdzielone myślnikiem ([0-9]) dopasowuje dowolny znajdujący się pomiędzy nimi znak (w tym przypadku od 0 do 9). source : http://git-scm.com/book/pl/v1/Podstawy-Gita-Rejestrowanie-zmian-w-repozytorium
  18. 18. Pojęcia origin – nazwa zdalnego głównego repo head – wskazuje nasze bieżące miejsce w branch'u master – nazwa głównego branch'a repozytorium (archiwum) (repository) – historia zmian (repo) (object store + index) (.git) obszar roboczy – zbiór plików na których pracujemy commit – zbiór zmian , które mają być utrwalone → zapisanie zmian w repozytorium branch – gałąź głównego korzenia mająca na celu np. tworzenie nowej funkcjonalności tag – traktuj to jako zakładkę poszczególnych rewizji (commit'ów) index (stage) - zawiera informacje o tym, czego dotyczyć będzie następna operacja commit. (.git) pull request: - żądanie połączenia Twoich zmian z innym branch'em lub repozytorium check out - aktualizacja Twojego obszaru roboczego z daną gałęzią , rewizja czy zakładką merge – połączenie odrębnych gałęzi w jedną całość. push - wysłanie zmian na zdalne repozytorium pull- pobranie zmian ze zdalnego repozytorium
  19. 19. Git Tworzenie repo git init – tworzenie nowego → .git git clone – kopiowanie istniejącego git clone {url} {new_clone_repo_name} Surowe – synchronizacja projektów, tylko folder .git bez obszaru roboczego oraz indeksu. Są to repozytoria przeznaczone do udostępniania w sieci → git push, git pull (brak bezpośredniego miejsca na jakiekolwiek zmiany) git init --bare → git init –bare {path} git clone --bare
  20. 20. Github Quick setup https://github.com/przodownikR1/testr2.git echo "# testr2" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/przodownikR1/testr2.git git push -u origin master …or push an existing repository from the command line git remote add origin https://github.com/przodownikR1/testr2.git git push -u origin master
  21. 21. Git init, add, commit, status git add – zmiana stanu pliku z nienadzorowanego na nadzorowany git add . == git add -A git commit -a -m '' - uwzględnij dodane już pliki podczas dodawania do repo (git add . | git commit) git status == git ls-files -s git commit –ammend {filename} – wymuszenie dodania pliku do rewizji
  22. 22. Git rm git rm odwrotność git add git rm –cached {filename} – usuwa plik z indeksu ale pozostawia do w przestrzeni roboczej git rm {filename} – usuwa plik z indeksu i przestrzeni roboczej git rm -f {filename} – usunięcie bez względu na inne czynniki
  23. 23. Git mv mv fileOne fileTwo git rm fileOne + git add fileTwo == git mv fileOne fileTwo
  24. 24. Git mv mv fileOne fileTwo git rm fileOne + git add fileTwo == git mv fileOne fileTwo
  25. 25. File status lifecycle
  26. 26. Stany pliku Zatwierdzony - oznacza, że dane zostały bezpiecznie zachowane w Twojej lokalnej bazie danych. Zmodyfikowany - oznacza, że plik został zmieniony, ale zmiany nie zostały wprowadzone do bazy danych. Śledzony, nadzorowany (tracked)- oznacza, że zmodyfikowany plik został przeznaczony do zatwierdzenia w bieżącej postaci w następnej operacji commit. (git add {someFile}) Plik aktualny (unmodified file) – możliwy jest do zawsze możliwy do odzyskania (checkout) (obecny w repo git add + git commit). Nie można go zaindeksować. Plik zmodyfikowany (modified file) – to plik posiadający różnice pomiędzy wersją w repo , a obszarem roboczym Plik nieśledzony, nienadzorowany (untrucked file) – to nowo utworzony plik w obszarze roboczym nie będący częścią żadnej rewizji (repo czy indeksie) Plik zaindeksowany (staged file) – objęty operacją commit Plik niezaindeksowany (unstaged file) – zmodyfikowany plik, który nie został zaindeksowany (nie występujący w bazie index) Plik pomijany (ignored file) – niewidoczny dla archiwum (.gitignore)
  27. 27. Source : http://tex.stackexchange.com/questions/70320/workflow-diagram
  28. 28. Git branch Pozwala na pracę rozwojową prowadzoną w jakimś konkretnym celu np. dodaniu nowej funkcjonalności lub poprawie błędów Branch = zadanie !! git branch {branch_name} – tworzenie git branch – lista lokalnych branch'y (-v | -r | -a ) git branch -d {branch_name} – skasowanie branch'a git show-branch – bardziej dokładny niż git branch (chronologicznie) git checkout -b {branch_name} git branch –merged –no-merged -wyświetlenia gałęzi, które już zostały lub jeszcze nie zostały scalone do aktywnej gałęzi
  29. 29. Git : reset, checkout Przywracanie obszaru roboczego do stanu z wybranej rewizji git reset –hard {rev} – późniejsze rewizje są usuwane z historii ! git checkout -f {rev} – repo znajduje się w stanie detached git checkout -f {rev} {filename} – odzyskanie pliku z danej rewizji git chechout – {filename} - cofanie zmian w zmodyfikowanym pliku
  30. 30. Logs git log -p -5 → pokazuje różnice wprowadzone z każdą rewizją Opcje : - short - full - fuller git log --pretty=oneline git log --pretty=format:"%h - %an, %ar : %s" Opis : %h Skrócona suma kontrolna zmiany %an Nazwisko autora %ae Adres e-mail autora %ad Data autora %ar Względna data autora %cn Nazwisko zatwierdzającego zmiany %ce Adres e-mail zatwierdzającego zmiany %cd Data zatwierdzającego zmiany %cr Data zatwierdzającego zmiany, względna %s Temat
  31. 31. Przykład : logs przodownik~/w/spring-boot (master| )$ git log --pretty=format:"%h - %an, %ar : %s" --author Rob✔ 15:51 ● 7ecbbc1 - Rob Winch, 7 weeks ago : Merge branch '1.2.x' ● 493d7a3 - Rob Winch, 7 weeks ago : Merge branch '1.1.x' into 1.2.x ● 760d6ec - Rob Winch, 7 weeks ago : Fix Unnecessarily Adding Default Security User ● f9816ea - Rob Winch, 2 months ago : Fix configureGlobal on SpringBootApplication ● e42fa79 - Rob Winch, 2 months ago : Fix fragile AuthenticationManagerConfiguration ● adb2205 - Rob Winch, 11 months ago : Make SpringBootPlugin more Groovy ● 52382f9 - Rob Winch, 11 months ago : Default Compile tasks to use UTF-8 encoding ● ae7098a - Rob Winch, 1 year, 1 month ago : Add RepositoryRestMvcAutoConfiguration ● f852096 - Rob Winch, 1 year, 1 month ago : Security Documentation Cleanup ● 6b0eba3 - Rob Winch, 1 year, 2 months ago : Update to Spring Security 3.2.1 ● 6c5701b - Rob Winch, 1 year, 3 months ago : Use @Autowired AuthenticationManagerBuilder ● 77b5ad1 - Rob Winch, 1 year, 6 months ago : Update to Spring Security Snapshot ● f40758c - Rob Winch, 1 year, 8 months ago : Update README link text to be M1 ● 3662a8b - Rob Winch, 1 year, 9 months ago : Fix README Quick Start Java Example
  32. 32. Przykład : logs --since 'yyyy-mm-dd' '| --until | --author | -n --abbrev-commit - skrócenie SHA --abbrev=4 - skrócenie SHA przodownik ~/w/spring-boot (master| )$ find . -type f -print | grep -v '/.git/' | wc✔ -l => 2472 przodownik ~/w/spring-boot (master| )$ git log --pretty=oneline --author Rob |✔ wc -l => 14 przodownik ~/w/spring-boot (master| )$ git log --pretty=oneline | wc -l✔ => 4425 git log --since=2.weeks
  33. 33. Tags opisane (annotated tags) - dane o autorze - datę utworzenia - komentarz - SHA rewizji lekkie (lightweight tags) → (.git/refs/tags) - tylko SHA rewizji Git push nie przesyła etykiet do zdalnego repozytorium ! git push origin [tag_name]
  34. 34. Tags git tag -a {nazwa} -m {komentarz} → (opisowy) Znacznik musi być unikalny git tag {nazwa} → (lekki) git tag -d {nazwa} – usuwanie znacznika git tag – listuje znaczniki git log --tags --simplify-by-decoration --pretty="format :%ai %d %an %s" | sort git describe – lista dostępnych znaczników opisanych git show -s {tagName} – wyświetlenie szczegółów
  35. 35. Kompresja git archive --format=zip --output={fileName} SHA Wygenerowanie skompresowanego archiwum odpowiadającego danej rewizji. Zamiast rewizji SHA można użyć znaczników.
  36. 36. Git stash Traktuj stash jako schowek czy skrytkę. git stash list git stash – dodanie do skrytki git stash pop – z usunięciem ze stosu git stash apply – bez usunięcia ze stosu git stash drop – usunięcie ze skrytki
  37. 37. Git remote Sprawdzanie zdalnych repozytoriów i tworzenie połączenia z nimi. git remote | remote -v git remote add origin {url} git remote origin remote show [remote_repo] git remote rename {old_name} {new_name} git push [remote_repo] :[branch] – usuwanie zdalnej gałęzi git push origin –delete [remote_branch] – odpowiednik powyższego
  38. 38. Git push Wypychanie zmian do zdalnego repozytorium git push -u origin master przodownik ~/b/university_training (step13_templates| )$ git branch step14_git✔ przodownik ~/b/university_training (step13_templates| )$ git checkout step14_git✔ Switched to branch 'step14_git' przodownik ~/b/university_training (step14_git| )$✔ git push origin step14_git Total 0 (delta 0), reused 0 (delta 0) To https://github.com/przodownikR1/university_training.git * [new branch] step14_git -> step14_git przodownik ~/b/university_training (step14_git| )$✔
  39. 39. Git pull, fetch Pobiera zmian ze zdalnego repo git pull {repo_name} {branch_name} git fetch {repo_name} – pobiera zmiany ze zdalnego brancha
  40. 40. Git merge git merge {branchName} – przeniesienie zmian z gałęzi branchName do bieżącej przodownik /t/gitRepo (master| )$✔ git merge hotfix Updating 5c8bc03..cde1827 Fast-forward 1.java | 1 + hot.java | 1 + main.java | 1 + 3 files changed, 3 insertions(+) create mode 100644 1.java create mode 100644 hot.java przodownik /t/gitRepo (master| )$✔ git prettyAll * cde1827 (HEAD, master, hotfix) a hotfix | * c4452d1 (feature) a added | * 3ca2549 a feature |/ * 5c8bc03 a przodownik /t/gitRepo (master| )$✔ git branch -d hotfix Deleted branch hotfix (was cde1827). przodownik /t/gitRepo (master| )$✔ git prettyAll in 0.1 seconds automatically... * cde1827 (HEAD, master) a hotfix | * c4452d1 (feature) a added | * 3ca2549 a feature |/ * 5c8bc03 a
  41. 41. Merge example - continue przodownik /t/gitRepo (feature| )$✔ git merge master Auto-merging main.java CONFLICT (content): Merge conflict in main.javaAuto-merging 1.java CONFLICT (add/add): Merge conflict in 1.java Automatic merge failed; fix conflicts and then commit the result przodownik /t/gitRepo (feature|MERGING|●2 1 3)$✖ ✚ git status On branch feature You have unmerged paths. (fix conflicts and run "git commit") Changes to be committed:new file: hot.java Unmerged paths: (use "git add <file>..." to mark resolution) both added: 1.java both modified: main.java przodownik /t/gitRepo (feature|MERGING|●2 1 3)$✖ ✚ git commit -a [feature 7e57cf1] Merge branch 'master' into feature przodownik /t/gitRepo (feature| )$ git status✔ On branch feature nothing to commit, working directory clean
  42. 42. Merge → conflicts <<<<<HEAD - aktualna gałąź w której obecnie się znajdujesz. <<<<<< ======= >>>>>> - usuwamy git add . git commit .. git mergetool – narzędzie do ułatwniania operacji scalania.
  43. 43. Git rebase Integrowanie zmian z jednej gałęzi do drugiej jest możliwe dzięki operacji : - merge -scalanie - rebase – zmiana bazy Nie zmieniaj bazy rewizji, które wypchnąłeś już do publicznego repozytorium !! git rebase -i {rev} - łączenie rewizji git rebase -i rev_12 git rebase -i HEAD~3 pick (p) → dana rewizja zostanie zapisana w historii po zakończeniu operacji reword (r) → pick + opis edit (e) → pick + edycja zmian w rewizji squash (s) → łączy podaną rewizję z poprzednią fixup (f) → squash bez modyfikacji komentarza exec (x) → wiersz polece
  44. 44. Merge/Rebase source: http://git-scm.com/book/pl/v1/Ga%C5%82%C4%99zie-Gita-Zmiana-bazy -merge
  45. 45. Git revert git revert –no-edit {rev} – usunięcie zmian wprowadzonych przez daną rewizje. --no-edit = domyślny komentarz 'Revert …'
  46. 46. Git diff Porównujemy pliki, rewizje i całe branch'e git diff –cached – co z indeksu trafi do repozytorium git difftool –cached – to co wyżej ale z użyciem narzędzia do wskazywania różnić np. meld. git diff – zmiany spoza poczekalni git diff {branch} {rev} {conrete_file} – pokazuje różnice względem branch'a, rewizji, pliku lub pakietu git diff –stat - statystyki
  47. 47. Git apply - łaty git apply /home/przodownik/main.java.patch – wczytywanie łaty (współpracuje z git diff, zasada : 'zaakceptuj lub odrzuć wszystko')
  48. 48. Koniec :) Dziękuje za uwagę :)

×