Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions podzim_2025/DagyDee/ukol.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Soubor na zkoušku. :)
54 changes: 54 additions & 0 deletions podzim_2025/HonazaO/ukol_bash_1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
1) Co dělá příkaz ls -v? == C. Seřadí soubory podle hodnot (víceciferných) čísel v názvech
-v přirozené řazení (verzovacích) čísel v textu


2) Začnu-li (jako uživatel mh) v adresáři /home/mh/data, které z těchto příkazů mě dostanou do /home/mh?
Spravně je:
A. cd . NE
B. cd / NE
C. cd /home/mh ANO
D. cd ../.. NE
E. cd ~ ANO
F. cd home NE
G. cd ~/data/.. NE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ANO - není to vůbec rozumné řešení, ale dostanu se o složku výš do domovské složky

H. cd ANO
I. cd .. ANO
J. otevření nového terminálu ANO


3) Mám-li níže ukázané adresáře, a pwd vypisuje /home/mh/vec, co ukáže ls -F ../archiv?
E. original/ pnas_final/ pnas_2/


4) Vypadá-li disk jako v předchozím úkolu a pwd vypisuje /home/mh/archiv, které z těchto příkazů vypíšou pnas_2/ pnas_final/ original/?
B. ls -r -F
C. ls -r -F /home/mh/archiv

5) Zadej tenhle příkaz: touch novy_soubor.txt

Co tenhle příkaz udělal? (Nápověda: Použij ls) Vytvoří novy_soubortxt
(pokud neexistuje jinak upravi jeho datum a čas)

Když se do aktuálního adresáře podíváš grafickým manažerem souborů, ukáže se ti
novy_soubor.txt? ANO

Pusť ls -l. Zjistíš z výpisu, co nový soubor obsahuje? Má nulovou velikost takže
je prázdný.

K čemu slouží příkaz touch? K vytvoření nebo aktualizovaní časových udaju
souboru.

6) mv sucrose.dat maltose.dat ../raw

7) B. mv statsitika.txt statistika.txt (Cp to udělá take ale zustane i špatný
soubor což asi necheme)

8) Vypíše A. proteiny2.dat rekombinace

9) mv *.dat analyzed/

10) A Ano vytvoří
B Ano Vytvoří
C Ne
D Ano vytvoří
E Ne
12 changes: 0 additions & 12 deletions podzim_2025/HonazaO/ukoly.txt

This file was deleted.

101 changes: 101 additions & 0 deletions podzim_2025/HonazaO/ukoly_git.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
1) Proč je vhodné nastavit uživatelské jméno a e-mail hned po instalaci?

2) Jaký je rozdíl mezi pracovním adresářem, indexem (staging area) a
repozitářem?

3) Co se děje při příkazu git add a co při git commit?

4) Vysvětli, co je to commit hash a proč je důležitý.

5) Jak Git uchovává historii změn? Uveď rozdíl oproti klasickému ukládání
souborů.

6) Co znamená, že Git je „distribuovaný systém pro správuverzí“?

7) Proč je doporučeno používat větve místo práce přímo v hlavní větvi
(main/master)?

8) Jaký je rozdíl mezi git merge a git rebase? Uveď příklad, kdy bys
použil/a který. Co se stane s historií, pokud sloučíš větev pomocí
merge? A co při rebase? Pozn.: Co je rebase jsme se na kurzu neučili,
ale jde taky o způsob slučování větví, který je dobré znát.
Zkus si o tom dohledat informace.

9) Jaký je účel pull requestu a proč se používá?

10) Co znamená code review a jaký je jeho přínos?

11) K čemu je soubor .gitignore ?

12) Co se stane, pokud přidáš do .gitignore soubor, který už je ve
verzovací historii?

13)Proč je vhodné ignorovat logy, dočasné soubory editorů nebo sestavení?

14) Jak se zapisují vzory do .gitignore? Uveď příklady pro:
Ignorování všech .log souboru
Ignorování adresáře build

Ad1) Protože tyto hodnoty se hned při použití gitu pouřžívají
a ukládají se v historii. Také slouží v případě že se soubory
následně posílají do vzdáleného repozitáře k identifikaci uživatele.

Ad2) Pracovní adresář fyzické místo na disku kde mám uložené
soubory.
Index(staging area) něco jako "pracovní" verze změn jsou v něm
přidané soubory, které by se měli následně poslat do repozitáře.

Repozitář je seznam souborů jejich změny historie atd.

Ad3) Git add: vezme aktuální soubor a přidá ho do stage.
Git commit: uloží změny souboru ze stage do repozitáře +
přidá datum změny a popis změn autorem.

Ad4) Jednoznačný identifikátor revize je to jedinečný odkaz na odeslanou
změnu.

Ad5) Git má vlastní struktůru ve které uchovává změny souboru a co se v
souborech měnilo. Neduplikuje soubory, zaznamenává rozdíly.

Ad6) Každý má celý repozitář a jeho historii, je možné pracovat samostatně
offline, neni nutný centrální bod. Změny se následně synchronizují.

Ad7) Důvodem je asi právě distribuovaný systém. Main je stabilní větev
a změny se provádějí v branchi kde je pak následně lehčí udělat merge do main
větve.
Comment on lines +63 to +65
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ano, je to tak. Taky se dá pracovat zároveň lokálně na víc různých změnách ve víc větvích - například když přijde urgentní tiket na opravu bugu, tak odložím co dělám a přepnu se do jiné větve.


Ad8) Merge spojí větve do hlavní a přidá komentář.
rebase - dle názvu a netu asi vytvoří paralerní větev projektu. Historie
se přepiše minimálně hashe. Vytvoří nezávisl projekt, která již nejde snadno
spojit s předchozím!!
Comment on lines +67 to +70
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Toto zní docela dramaticky :)
Merge spojí větve do jedné větve a to tak, že tam přidá tzv. merge commit, který má pak dva "rodiče". V git log je pak vidět navíc řádek Merge: 28ba2f3 678c713, který odkazuje právě na tyto commity.

Rebase funguje tak, že vezme commity z jedné větve a naskládá je na konec větve, kam "slučujem". V tomto případě má každý z těch přesunutých commitů stále jednoho rodiče, pro první z nich se ale změní rodič (a tedy historie). Také se změní commit hash přesunutých commitů (tím působí jako nové).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

před rebase:
A---B---C (main)
\
D---E (nova_vetev)

po rebase:
A---B---C---D'---E' (main)


ad9) pull request je žádost o začlenění změn z větve do jiné (nejčastěji
main) slouži ke kontrole codu a transparentnímu schválení. pull request je
funkce platforem (github.com) v gitu není!!!

ad10) Nevím tipnu že je to kontrola kódu. Přínos asi hledání chyb, ladění
výkonu apod.
Comment on lines +76 to +77
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ano, typicky se právě dělá v rámci pull requestu. Hlavní je samozřejmě hledání chyb, taky se dají řešit třeba designové nedostatky, např. "špagetový kód", atd.


ad11) Je to soubor kam se vypisuji soubory a adresáře co git nebude sledovat
nebude přidávat do stage ani repozitáře. Velmi často provozní prostředí co
vytváří třeba python nebo soubory s hesly a pod.

ad12) Nevím co jsem našel na netu tak ignorování se týká jen nesledovaných
souborů. Už sledovaný soubor zůstane trackovaný. Chceš li ho přestat sledovat
použij
git rm --cached path/to/file
git commit -m "Stop tracking generated file"

Po výše uvedeném pak .gitignore udrží soubor mimo.

ad13) Protože zbytečně nafukují repozitář spomalují následné synchronizace,
způsobují konflity ve verzích a nepatří do zdrojového kodu!!!

ad14) ignoruj všechny logy. *.log
ignoruj adresář build build/
Do souboru se vypíše patern jenž má být ignorován
* = libovolný řetězec znaků
? = jeden znak
/ = na konci značí adresář, na začátku se vztahuje k root repa.


2 changes: 2 additions & 0 deletions podzim_2025/Liliia-S/DU1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
nic jsem nenapsala :<
000000000000000
2 changes: 2 additions & 0 deletions podzim_2025/Liliia-S/DU2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
nic jsem nenapsala :<
000000000000000