-
Notifications
You must be signed in to change notification settings - Fork 3
Dopracovány otázky ohledně domácího ukolu git. #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
a61fde4
9bbf172
bb91a4e
534a31c
c2aece4
12fbdc9
163ca44
8e5c108
df9e1ca
2610b1e
65d546d
fda91e0
60fc807
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Soubor na zkoušku. :) |
| 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 | ||
| 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 | ||
This file was deleted.
| 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
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Toto zní docela dramaticky :) 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é).
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. před rebase: po rebase: |
||
|
|
||
| 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
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| nic jsem nenapsala :< | ||
| 000000000000000 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| nic jsem nenapsala :< | ||
| 000000000000000 |
There was a problem hiding this comment.
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