Skip to content

Commit d124ad9

Browse files
committed
Reword materials on collaboration, GitHub, file ignoring
1 parent 948fe07 commit d124ad9

File tree

2 files changed

+99
-41
lines changed

2 files changed

+99
-41
lines changed

lessons/git/collaboration/index.md

Lines changed: 83 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
{% set coach_username = var('coach-username') or 'encukou' %}
1+
{% set coach_username = var('coach-username') or 'naucse' %}
22

33
# Spolupráce
44

55
„Opravdové” programy zřídka vznikají prací jednoho člověka.
66
Víc hlav víc ví, a tak je dobré si na projekt vytvořit tým.
77

88
Každý člen týmu potřebuje mít přístup k práci ostatních.
9-
K tomu se dá použít Git: někde na internetu si zařídíme *sdílený repozitář*,
9+
K tomu se dá použít Git: někde na internetu si zařídí *sdílený repozitář*,
1010
se kterým se všichni budou synchronizovat.
1111

1212
> [note] Pro samostudium
@@ -19,8 +19,8 @@ se kterým se všichni budou synchronizovat.
1919
> [note] Pro kouče
2020
> Udělej na GitHubu repozitář jménem `prezencka` a dej do
2121
> něj soubor se svým jménem. Příklad je na
22-
> [encukou/prezencka](https://github.com/encukou/prezencka).
23-
> Nasdílej s účastnicemi příkaz na jeho naklonování (přes https).
22+
> [naucse/prezencka](https://github.com/naucse/prezencka).
23+
> Nasdílej s účastníky příkaz na jeho naklonování (přes https).
2424
2525

2626
## Open Source
@@ -155,26 +155,55 @@ a zkus se podívat na historii (`gitk` nebo `git log`).
155155
Možná je krátká, ale hlavně, že nějaká je.
156156
Máš na počítači kopii projektu, který založil někdo jiný!
157157

158+
Jak už napovídá název repozitáře, tvůj příspěvek do tohoto projektu bude
159+
zápis do prezenčky: konkrétně přidání souboru s tvým jménem.
160+
Jméno je to proto, aby nedocházelo ke kolizím: potřebujeme, aby příspěvky od
161+
všech lidí, kteří prochází tenhle kurz, byly jiné.
162+
163+
Tvůj příspěvek bude ovšem veřejně vystaven na internetu.
164+
Pokud nechceš vystavovat svoje občanské jméno, použij místo něj klidně
165+
přezdívku, oblíbené jídlo nebo pár náhodných písmen. Ale:
166+
* když budeš pojmenovávat soubor, buď originální, aby nedošlo ke konfliktům, a
167+
* nesdílej nic, co nemáš právo sdílet (např. texty moderních písní).
168+
169+
170+
## Vytvoření větve
171+
172+
Pomocí `git branch` zjisti, na jaké jsi aktuálně větvi.
173+
Měla by to být větev `master`.
174+
175+
Tuhle „základní“ větev je dobré používat jen na revize, na kterých se už
176+
shodl celý tým.
177+
Proto když chceš do projektu přispět, jako první krok si pro svůj příspěvek
178+
udělej novou větev a přepni se do ní.
179+
Například pomocí:
180+
181+
```console
182+
$ git branch pridani-jmena
183+
$ git checkout pridani-jmena
184+
```
185+
158186

159187
## Posílání změn <small>(<code>git push</code>)</small>
160188

161189
Teď se do projektu zapoj.
162-
Přidej soubor se svým jménem (nebo přezdívkou)
163-
a dej ho do gitu (`git add jmeno.txt`, `git commit`).
190+
Přidej soubor pojmenovaný podle tvého jména (nebo přezdívky)
191+
a dej ho do gitu (<code>git add <var>...</var></code>; <code>git commit</code>).
164192

165193
Teď zbývá „jen” změnu začlenit do původního sdíleného repozitáře.
166194
To ale není jen tak: repozitář, který jsi
167195
naklonoval{{a}}, patří koučovi. A tomu by se asi
168196
nelíbilo, kdyby kdokoliv na Internetu mohl přijít
169197
a nahrát mu do repozitáře změny.
170198

171-
Spousta míst na Internetu funguje tak, že vybraná
172-
skupina lidí má „přístup”: můžou dělat změny,
173-
jak se jim líbí.
199+
Spousta míst na Internetu (blogy, zpravodajství, e-shopy) funguje tak, že
200+
vybraná skupina lidí, „editorů“, má právo měnit obsah, jak se jim líbí.
201+
Takovým editorům musí správce projektu věřit, než jim přístup povolí.
174202

175-
S Gitem se používá jiný přístup:
203+
S Gitem se používá trožku jiný mechanismus:
176204
změny nahraješ do *vlastního* sdíleného
177-
repozitáře a majiteli původního projektu napíšeš
205+
repozitáře, který máš právo měnit jen ty.
206+
Majiteli původního projektu pak napíšeš
178207
žádost o začlenění těch změn (angl. *pull request*).
179208
Může to být třeba mail se slovy „Hele, na té a té
180209
adrese mám nějaké změny, které by se ti mohli hodit!
@@ -185,12 +214,12 @@ veřejný – může zapojit kdokoliv. Nemusíš se
185214
předem ptát, nemusíš dokazovat že jsi důvěryhodná
186215
osoba, stačí něco změnit a poslat.
187216
Jestli se změna bude autorům projektu líbit nebo
188-
ne, to už je jiná věc. Ale záleží hlavně na samotné
189-
změně, ne na tom, kdo ji udělal.
217+
ne, to už je jiná věc – ale můžou posuzovat samotnou
218+
změnu, ne důvěryhodnost jejího autora.
190219

191-
Služba [github.com](https://github.com/)
192-
ti umožňuje si udělat vlastní sdílený repozitář a zjednodušuje
193-
začleňování změn (místo posílání mailů stačí
220+
Služby jako [github.com](https://github.com/)
221+
ti umožňují si udělat vlastní sdílený repozitář (který bude k dispozici na
222+
internetu) a zjednodušují začleňování změn (místo posílání mailů stačí
194223
zmáčknout tlačítko). Pojďme se podívat, jak na to.
195224

196225
Přihlaš se na GitHub a pak zajdi na adresu
@@ -205,12 +234,20 @@ adresa by měla být něco jako
205234
> Kdybys měl{{a}} v různých kopiích repozitáře zmatek,
206235
> přijde vhod malé vysvětlení: jedna kopie je původní
207236
> projekt na GitHubu, kam správce projektu dává
208-
> aktuální „oficiální verzi“. Další kopie na GitHubu
237+
> aktuální „oficiální“ nebo „hlavní“ verzi. Další kopie na GitHubu
209238
> je „tvoje“ a můžeš si do ní nahrát co chceš
210239
> (nejčastěji v ní ale zveřejňuješ změny, které můžou
211-
> být užitečné pro ostatní). A třetí kopii repozitáře
212-
> máš u sebe na počítači.
213-
240+
> být užitečné pro ostatní).
241+
> Tyhle dvě kopie existují na serverech GitHubu a jsou volně dostupné
242+
> přes internet.
243+
>
244+
> Třetí kopii repozitáře pak máš u sebe na počítači.
245+
> K té se dostaneš jen ty.
246+
>
247+
> Z „hlavní“ verze si stáhnout práci ostatních členů týmu;
248+
> do *tvého* prokejtu na GitHubu dáváš své změny, aby je ostatní mohli
249+
> schválit a začlenit do „hlavní“ verze.
250+
>
214251
> {{ figure(
215252
img=static('gh-workflow-diagram.svg'),
216253
alt='Diagram tří repozitářů'
@@ -257,12 +294,12 @@ Pak už můžeš změny nahrávat pomocí:
257294

258295

259296
<div class="highlight codehilite">
260-
<pre><code><span class="gp">$</span> git push <i>tvojejmeno</i> master
297+
<pre><code><span class="gp">$</span> git push <i>tvojejmeno</i> pridani-jmena
261298
</code></pre></div>
262299

263300
což znamená: pošli na adresu uloženou pod zkratkou
264301
<code><i>tvojejmeno</i></code>
265-
větev `master`.
302+
větev `pridani-jmena`.
266303

267304
Funguje? Podívej se na
268305
<code>https://github.com/<i>tvojejmeno</i>/prezencka</code>
@@ -301,19 +338,33 @@ o tom, jak je ještě vylepšit.
301338
> To může trvat i pár dní; kdyby to bylo přes týden,
302339
> tak se na stránce *pull requestu* zkus připomenout.
303340
341+
U přidání jména do prezenčky se to asi nestane, ale kdybys potřeboval{{a}}
342+
na změně před začleněním ještě trochu zapracovat (třeba i po
343+
pár dnech diskuse), nebyl by to problém.
344+
Přepni se na svém počítači do větve `pridani-jmena`, udělej další revize,
345+
a pomocí <code>git push <i>tvojejmeno</i> pridani-jmena</code>
346+
*pull request* aktualizuj.
347+
304348

305349
## Aktualizace <small>(<code>git pull</code>)</small>
306350

307351
Když budou tvé změny – a změny od ostatních –
308352
začleněné, můžeš si aktualizovat lokální repozitář. (To je ten,
309353
který máš u sebe na počítači.)
310354

355+
Nejdřív se přepni zpět do větve `master`.
356+
Teď už nebudeš pracovat na `pridani-jmena`; tahle větev už je odeslaná.
357+
311358
To se dělá příkazem
312359
`git pull origin master` (stáhni změny
313360
z větve „master” z adresy pod zkratkou „origin”).
314361
Pomocí `gitk --all` nebo `git log`
315362
se můžeš podívat, jak se projekt mezitím vyvinul.
316363

364+
Tohle `git pull` je dobré provést vždycky předtím, než začneš pracovat na
365+
nové změně/větvi.
366+
Zaručíš tím, že projekt, který měníš, je „čerstvý“.
367+
317368
Gratuluji! Právě jsi {{gnd('prošel', 'prošla')}} „kolečkem“,
318369
které většina programátorů dělá denně: udělání nějaké změny,
319370
odeslání kolegům na kontrolu a začlenění a stažení změn od ostatních.
@@ -359,19 +410,18 @@ Do tohoto souboru patří mj.:
359410

360411
README by mělo být členěné a jeho přečtení by nemělo zabrat uživateli hodinu,
361412
většinou stačí krátké úderné informace s případným odkazem někam dál.
362-
Není tedy například potřeba vysvětlovat v každém projektu,
363-
jak se instaluje Python.
364-
Stačí říct, že Python je potřeba (a v jaká verze)
413+
Nemusíš tedy například vysvětlovat v každém projektu, jak se instaluje Python.
414+
Stačí říct, že Python je potřeba (a v jaké verzi)
365415
a odkázat uživatele na patřičný návod.
366416
Je také třeba brát v úvahu, kdo bude README číst.
367-
Píšete-li program pro jiné vývojářky a vývojáře,
368-
často není třeba zabrušovat do velikých detailů.
417+
Píšeš-li program pro jiné vývojářky a vývojáře,
418+
často nemusíš zabrušovat do detailů.
369419

370420
GitHub (a spousty jiných podobných služeb) umožňuje pro README použít nějaký
371421
značkovací jazyk, například [Markdown](https://cs.wikipedia.org/wiki/Markdown).
372422
Je možné pak používat nadpisy, obrázky apod.
373423

374-
V neposlední řadě aby se do projektu mohl zapojit
424+
A v neposlední řadě: aby se do projektu mohl zapojit
375425
kdokoli z celého světa, bývají open-source projekty v angličtině.
376426
Jména proměnných, komentáře, dokumentace – všechno
377427
je primárně v anglické verzi.
@@ -385,8 +435,10 @@ to bude velice složité.
385435
Aby sdílení fungovalo i pro právní stránce,
386436
nestačí když nahraješ kus kódu na Internet.
387437
Musíš taky oficiálně oznámit, že si s ním ostatní můžou hrát.
388-
Bez *licence* totiž nemá nikdo právo tvůj
389-
program ani používat, natož vylepšovat.
438+
Na svůj kód totiž máš autorské právo, podle kterého ostatní nesmí tvůj program
439+
používat, natož vylepšovat, dokud jim to nepovolíš.
440+
Pro formální udělení tohohle povolení se používají *licence*, které píšou
441+
právníci.
390442

391443
Problematika licencí může být, bohužel, docela složitá.
392444
Když to ale zjednodušíme na minimum, budeš
@@ -408,6 +460,7 @@ licenci [MIT](https://choosealicense.com/licenses/mit/).
408460
409461
Kód se nejčastěji licencuje tak, že text licence
410462
dáš do souboru jménem `LICENSE` a přidáš do Gitu.
463+
Je dobré licenci zmínit i v souboru `README`.
411464

412465
Chceš-li si o licencích přečíst něco víc, odkážu tě na
413466
[choosealicense.com](http://choosealicense.com/),

lessons/git/ignoring/index.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,30 @@
44
Takových souborů jsou tři hlavní druhy:
55

66
Pomocné soubory nástrojů
7-
: Python občas sám od sebe vytváří adresář `__pycache__` s pomocnými soubory.
7+
: Python občas „sám od sebe“ vytváří adresář `__pycache__` s pomocnými
8+
soubory, aby zrychlil importování modulů.
89
Některé počítače vytváří skryté soubory s názvy jako
910
`.Thumbnails`, `.DS_Store` nebo `Thumbs.db`.
1011
Takové věci v repozitáři nemají co dělat – je
1112
dobrým zvykem do Gitu nedávat nic, co jde vytvořit automaticky.
1213

13-
Výstup programu
14+
Výstup programu a nastavení
1415
: Píšeš-li program, který kreslí obrázky, většinou chceš v repozitáři
1516
jen samotný program.
1617
Obrázky si může pomocí programu každý vytvořit sám.
18+
: Podobně fungují soubory s heslem: pokud program potřebuje heslo
19+
např. k nějaké webové službě, ale svoje heslo nechceš dávat veřejně
20+
k dispozici, musí si každý vytvořit soubor s heslem sám.
1721

1822
Osobní soubory
1923
: Občas se stane, že v adresáři s repozitářem máš soubor s osobními
20-
poznámkami nebo třeba s heslem.
24+
poznámkami.
2125
Zbytek repozitáře plánuješ zveřejnit, ale tyto soubory by měly zůstat
22-
jen ve tvé kopii.
26+
jen ve tvé kopii. A to včetně informace o tom, že takové soubory máš.
2327

2428
Adresář s virtuálním prostředím
2529
: Jistě už sis zvykl{{a}} na virtuální prostředí.
26-
Adresář s ním se může jmenovat různě, v začátečnickém kurzu používáš název `venv`.
30+
Adresář s ním se může jmenovat různě, v začátečnickém kurzu používáme název `venv`.
2731
Není dobré tento adresář dávat do Gitu,
2832
protože je jednoduché jej vždy vytvořit znovu
2933
a pokud na projektu spolupracuje více lidí
@@ -107,7 +111,7 @@ lepší schraňovat jinde než v Gitu).
107111
Zároveň víš, že každý, kdo s repozitářem bude pracovat, pravděpodobně
108112
tenhle soubor vytvoří.
109113
Bylo by tedy dobré říct *všem* lidem, kteří se k repozitáři dostanou, že tento
110-
soubor nechceš.
114+
soubor do Gitu nepatří.
111115
To se dělá záznamem ve speciálním souboru v repozitáři.
112116

113117
Udělej soubor s názvem `.gitignore`.
@@ -138,8 +142,7 @@ Untracked files:
138142
nothing added to commit but untracked files present (use "git add" to track)
139143
```
140144

141-
Nový soubor `.gitignore` (a samotný program) potřebujeme přidat do repozitáře.
142-
Udělej to, pomocí `git add`:
145+
Nový soubor `.gitignore` přidej do repozitáře společně se samotným programem:
143146

144147
```ansi
145148
␛[36m$␛[0m git add .gitignore obrazek.py
@@ -173,10 +176,11 @@ Soubor `poznamky.txt` se taky dá zařadit do `.gitignore`, ale moc se tam nehod
173176
Existuje jen u tebe; není důvod předpokládat, že si někdo jiný vytvoří
174177
soubor se stejným jménem.
175178

176-
Dejme ho tedy do souboru, který se nebude šířit s repozitářem.
179+
Dej ho tedy do souboru, který se nebude šířit s repozitářem.
177180
Tento soubor je `.git/info/exclude`.
178181
(Může být trochu složité ho najít, protože adresář `.git` je skrytý.
179-
Nevidíš–li ho, napiš okýnku pro otevření souboru `.git` a dostaneš se do něj.)
182+
Nevidíš–li ho, napiš v editoru do okýnka pro otevření souboru `.git` a dostaneš
183+
se do něj.)
180184

181185
Soubory v adresáři `.git` bys neměl{{a}} měnit, protože se tak dá přijít
182186
o historii projektu.
@@ -303,7 +307,8 @@ Doporučuji si před použitím téhle zkratky zkontrolovat `git status`, aby si
303307
ověřil{{a}}, že nepřidáváš nic, co nechceš.
304308

305309
Taky doporučuji si nastavit Git, aby se v editoru, kam píšeš popisek revize,
306-
ukazovala poznámka s tím, co vlastně v nové revizi bude:
310+
ukazovala poznámka s tím, co vlastně v nové revizi bude.
311+
Uvidíš tak něco jako `git status` vždy, když začneš psát popisek k revizi:
307312

308313
```console
309314
$ git config --global commit.verbose 1

0 commit comments

Comments
 (0)