Podstawowy warsztat informatyka

Podobne dokumenty
Podstawowy warsztat informatyka

Co zostanie wypisane na ekranie? (1)

System kontroli wersji git

Programowanie I

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Rozproszony system kontroli wersji GIT. Piotr Macuk

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

Tak. Konrad Ktoso Malawski blog.project13.pl - SFI

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

Systemy kontroli wersji git od wewnatrz Użycie gita Koniec. git. Rozproszony system kontroli wersji. sphere.pl. Koło Naukowe Sfera

System kontroli wersji, system zarządzania kodem źródłowym

Środowisko programisty. Środowisko programisty 1/35

Git rozproszony system kontroli wersji

System kontroli wersji Git

Systemy kontroli wersji

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

CVS system kontroli wersji

Jak usprawnić tworzenie i zarządzanie stroną na drupalu. Maciej Łukiański

Programowanie zespołowe

Drupal i GIT. Schemat pracy.

Zarządzanie projektami informatycznymi

System kontroli wersji GIT. Andrzej Śliwa. java4people 2009

Open Source w służbie developerom

Git, Bitbucket, IntelliJ IDEA

SUBVERSION TOMASZ ŁUKASZUK

Git, Bitbucket. Narzędzia i środowiska programistyczne. Laboratorium 2. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

Assembla.com zajęcia 1

Systemy zarządzania wersjami

Git i platforma GitHub

Systemy kontroli wersji

ponad pracowników ponad pracowników ponad pracowników ponad pracowników

git krótki przewodnik

Programowanie zespołowe

Platforma GitHub. 1 Cel laboratoriów. 2 GitHub. 2.1 Git. źródeł.

Ćwiczenia z Git cz. 2

Programowanie Systemów Wbudowanych

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

1 Tworzenie własnego zaproszenia dla powłoki bash

SVN sojusz, partnerstwo, współpraca

Wprowadzenie do systemu wersjonowania svn

Projektowanie oprogramowania systemów NARZĘDZIA PRACY GRUPOWEJ, KONTROLI WERSJI, DOKUMENTOWANIA I ŚLEDZENIA BŁĘDÓW

Git instrukcja dla studentów

Programowanie Zespołowe

#1. Do wykonania jest biblioteka matematyczna, pozwalająca na pisanie działań w ciągu: math.add(1).sub(1).div(1);

Programowanie w Ruby

łatki darcs w praktyce darcs system kontroli wersji dla wybrednych Paweł Kołodziej 16 grudnia 2008

Jacek WOŁOSZYN AUTOMATYZACJA PROCESU ARCHIWIZACJI PRZYROSTOWEJ DANYCH Z WYKORZYSTANIEM GIT AUTOMATING THE PROCESS OF INCREMENTAL BACKUP DATA USING GIT

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Jako Akwizytor zbieram z repozytorium GIT informacje o historii projektu

Programowanie w Ruby

Subversion. System wersjonowania projektów. Instytut Informatyki Politechnika Poznańska

Korzystanie z VCS oznacza również, że jeśli coś zepsujesz lub utracisz pliki, możesz je łatwo odzyskać.

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Technologie Komponentowe. Piotr Łukasik p /

1. System kontroli wersji Instalacja programu kontroli wersji CVS

Rozpoczęcie pracy z programem.

Programowanie w językach skryptowych - Python i Linux Bash

System zarządzania wersjami I Subversion

Konfiguracja i administracja systemem kontroli wersji SVN

Git Podstawowe pojęcia, instalacja i konfiguracja

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Aspekty bezpieczeństwa aplikacji internetowych

GIT and GIT Flow in CI/CD

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Archiwizowanie nagrań i naprawa bazy danych

GIT. Rozproszony system kontroli wersji

Platformy Technologiczne

Integracja APD z Ogólnopolskim Repozytorium Prac Dyplomowych

Bazy Danych i Usługi Sieciowe

PRZEWODNIK PO PRZEDMIOCIE

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

PRZEWODNIK PO PRZEDMIOCIE

Baza danych sql. 1. Wprowadzenie

Temat lekcji: Har a m r o m nogr g a r m a m za z d a ań a

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

Przed restartowaniem routera odłącz wszystkie urządzenia podłączone pod porty USB.

Subversion - jak dziaªa

Systemy Kontroli Wersji

Integracja produktów Atlassian na przykładzie grupy IPFD

Git Magic. Ben Lynn. Sierpień 2007

Programowanie. Systemy kotroli wersji. Janusz Szwabiński. Plan wykładu:

Kurs pracy w systemie Linux zadanie z listy zada«

PRZEWODNIK PO PRZEDMIOCIE

1 Tworzenie własnego zaproszenia dla powłoki bash

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Wstęp do Informatyki dla bioinformatyków

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Partnerzy: Laboratorium 15

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej

Zasady ruchu drogowego dla rowerzysty - przypomnienie wiadomości. Wykorzystanie podstawowych funkcji przeglądarki do przeglądania stron WWW.

ABA-X3 PXES v Podręczna instrukcja administratora. XDMCP Licencja FDL (bez prawa wprowadzania zmian) Tryb X terminala

PRZEWODNIK PO PRZEDMIOCIE

CVS dla programisty lub amatora

TorqueBox. Moc Javy piękno Rubiego

Programowanie w Ruby

Transkrypt:

Podstawowy warsztat informatyka Jakub Michaliszyn Instytut Informatyki Uniwersytetu Wrocławskiego Wykład 7

Ogłoszenia Terminarz 12-20 stycznia: rozwiązywanie list 11-12, w czasie pracowni można przyjść na konsultacje. 16 stycznia, 15:45: Przesłanie rozwiązania zadania bonusowego 9.4 (CV). 20 stycznia: Wykład 8 - Git na poziomie plików 20 stycznia: Lista 12 - przesyłanie rozwiązań (do południa). 23 stycznia, 15:45: Przesłanie rozwiązania zadania bonusowego 9.5 (kupony). 23-27 stycznia: Lista 13 (wszystkie grupy). 27 stycznia: Wykład 9 - kompilowanie i debugowanie. 2 lutego: Lista 15/specjalna w grupach jotop i karp. 3 lutego: Kolokwium dla tych, którzy nie zdobyli 54% punktów. 3 lutego, do południa: Lista 14 - przesłanie rozwiązań. Jakub Michaliszyn (II UWr) PWI 2 / 14

Przypomnienie forki i pull requesty Problem: chcemy współpracować z różnymi ludźmi. Chcemy, aby owoce ich pracy lądowały w naszym repozytorium, ale żeby nie mogli nic popsuć. Jakub Michaliszyn (II UWr) PWI 3 / 14

Przypomnienie forki i pull requesty Problem: chcemy współpracować z różnymi ludźmi. Chcemy, aby owoce ich pracy lądowały w naszym repozytorium, ale żeby nie mogli nic popsuć. Rozwiązanie: współpracownicy tworzą kopię repozytorium (forka), a po skończonej pracy proszą o to, byśmy wciągnęli ich kod do naszego repozytorium (pull request). Jakub Michaliszyn (II UWr) PWI 3 / 14

Problem 1 Problem: Chcemy odrzucić lokalne, nieskomitowane zmiany. Jakub Michaliszyn (II UWr) PWI 4 / 14

Problem 1 Problem: Chcemy odrzucić lokalne, nieskomitowane zmiany. Popularne rozwiązanie (niezbyt dobre?) git stash Jakub Michaliszyn (II UWr) PWI 4 / 14

Problem 1 Problem: Chcemy odrzucić lokalne, nieskomitowane zmiany. Popularne rozwiązanie (niezbyt dobre?) git stash git stash odkłada zmiany na później, nie kasuje ich. Jakub Michaliszyn (II UWr) PWI 4 / 14

Problem 1 Problem: Chcemy odrzucić lokalne, nieskomitowane zmiany. Popularne rozwiązanie (niezbyt dobre?) git stash git stash odkłada zmiany na później, nie kasuje ich. Rozwiązanie: git checkout pliki Jakub Michaliszyn (II UWr) PWI 4 / 14

Problem 2 Chcemy obejrzeć, co zmieniliśmy. Jakub Michaliszyn (II UWr) PWI 5 / 14

Problem 2 Chcemy obejrzeć, co zmieniliśmy. Częściowe rozwiązanie: git status Jakub Michaliszyn (II UWr) PWI 5 / 14

Problem 2 Chcemy obejrzeć, co zmieniliśmy. Częściowe rozwiązanie: git status Bardzo złe rozwiązanie: git commit i git push Jakub Michaliszyn (II UWr) PWI 5 / 14

Problem 2 Chcemy obejrzeć, co zmieniliśmy. Częściowe rozwiązanie: git status Bardzo złe rozwiązanie: git commit i git push Nienajlepsze rozwiązanie: git checkout -b, git commit, git push (w forku). Jakub Michaliszyn (II UWr) PWI 5 / 14

Problem 2 Chcemy obejrzeć, co zmieniliśmy. Częściowe rozwiązanie: git status Bardzo złe rozwiązanie: git commit i git push Nienajlepsze rozwiązanie: git checkout -b, git commit, git push (w forku). Dobre rozwiązanie: git diff plik Jakub Michaliszyn (II UWr) PWI 5 / 14

Problem 3 Problem: chcemy usunąć/przenieść pliki tak, żeby git wiedział o tej operacji. Jakub Michaliszyn (II UWr) PWI 6 / 14

Problem 3 Problem: chcemy usunąć/przenieść pliki tak, żeby git wiedział o tej operacji. git rm/mv git mv plik1 plik 2 wykonuje: mv plik1 plik2 git remove plik1 git add plik2 Przy przenoszeniu plików należy zachować szczególną ostrożność! Jakub Michaliszyn (II UWr) PWI 6 / 14

Problem 3 Problem: chcemy usunąć/przenieść pliki tak, żeby git wiedział o tej operacji. git rm/mv git mv plik1 plik 2 wykonuje: mv plik1 plik2 git remove plik1 git add plik2 Przy przenoszeniu plików należy zachować szczególną ostrożność! git reset plik usuwa z gita, ale nie z komputera Jakub Michaliszyn (II UWr) PWI 6 / 14

Problem 4 Problem: chcemy usunąć lokalny commit. Jakub Michaliszyn (II UWr) PWI 7 / 14

Problem 4 Problem: chcemy usunąć lokalny commit. git reset HEAD~3 zachowuje lokalne zmiany git reset --hard HEAD~3 usuwa lokalne zmiany (wszystkie!). Jakub Michaliszyn (II UWr) PWI 7 / 14

Problem 5 Problem: chcemy usunąć zdalny commit. To jest prawie zawsze zły pomysł. Chyba, że pracujemy sami. Jakub Michaliszyn (II UWr) PWI 8 / 14

Problem 5 Problem: chcemy usunąć zdalny commit. To jest prawie zawsze zły pomysł. Chyba, że pracujemy sami. git revert HEAD git revert -n HEAD bez dodatkowego commita Jakub Michaliszyn (II UWr) PWI 8 / 14

Problem 6 Problem: chcemy ustrzec się przed przypadkowym dodaniem niektórych plików, np. baza.db, config.php itd. Rozwiązanie: dodać pliki go.gitignore. Przykładowy plik: *.dll *.exe *.o *.so *.7z *.log *.sql *.sqlite.ds_store?.trashes ehthumbs.db Thumbs.db Jakub Michaliszyn (II UWr) PWI 9 / 14

Problem 7 Problem: Musimy wielokrotnie rozwiązywać te same konflikty (bo np.powtarzamy merge). Jakub Michaliszyn (II UWr) PWI 10 / 14

Problem 7 Problem: Musimy wielokrotnie rozwiązywać te same konflikty (bo np.powtarzamy merge). REuse REcorded REsolution feature git config global rerere.enabled true Jakub Michaliszyn (II UWr) PWI 10 / 14

Problem 8 Problem: coś się popsuło, ale nie wiadomo kiedy. Jakub Michaliszyn (II UWr) PWI 11 / 14

Problem 8 Problem: coś się popsuło, ale nie wiadomo kiedy. Rozwiązanie: przeszukiwanie binarne. git bisect start # rozpoczęcie procesu git bisect bad # oznaczamy obecną wersję jako złą git bisect good revision # oraz oznaczamy ostatnią znaną dobrą wersję Potem powtarzac do rozwiązania: git bisect good lub git bisec bad Jakub Michaliszyn (II UWr) PWI 11 / 14

Git hooks Problem: chcemy zautomatyzować pewne rzeczy. Jakub Michaliszyn (II UWr) PWI 12 / 14

Git hooks Problem: chcemy zautomatyzować pewne rzeczy. Pliki wykonywalne dodajemy do.git/hooks Nazwa skryptu powinna odpowiadać zdefiniowanej. Przykład: każdy opis commita zawiera numer biletu (ticketa), np. #123. #!/usr/bin/env ruby message = File.read(ARGV[0]) unless message =~ /\\s*\#\\d+/ puts "[POLICY] Nie podałeś numeru biletu." exit 1 end Jakub Michaliszyn (II UWr) PWI 12 / 14

Usuwanie danych wrażliwych Problem: dodaliśmy do repozytorium jakiś wrażliwy plik, np. bazę danych albo plik z hasłem. Jakub Michaliszyn (II UWr) PWI 13 / 14

Usuwanie danych wrażliwych Problem: dodaliśmy do repozytorium jakiś wrażliwy plik, np. bazę danych albo plik z hasłem. git filter-branch --force --index-filter git rm --cached --ignore-unmatch secrets.txt --prune-empty --tag-name-filter cat -- --all Jakub Michaliszyn (II UWr) PWI 13 / 14

Mam inny problem Google i stackoverflow ftw. Jakub Michaliszyn (II UWr) PWI 14 / 14