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.
66Víc hlav víc ví, a tak je dobré si na projekt vytvořit tým.
77
88Kaž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ář* ,
1010se 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`).
155155Možná je krátká, ale hlavně, že nějaká je.
156156Máš 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
161189Teď 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
165193Teď zbývá „jen” změnu začlenit do původního sdíleného repozitáře.
166194To ale není jen tak: repozitář, který jsi
167195naklonoval{{a}}, patří koučovi. A tomu by se asi
168196nelíbilo, kdyby kdokoliv na Internetu mohl přijít
169197a 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 :
176204změ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* ).
179208Může to být třeba mail se slovy „Hele, na té a té
180209adrese mám nějaké změny, které by se ti mohli hodit!
@@ -185,12 +214,12 @@ veřejný – může zapojit kdokoliv. Nemusíš se
185214předem ptát, nemusíš dokazovat že jsi důvěryhodná
186215osoba, stačí něco změnit a poslat.
187216Jestli 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čí
194223zmáčknout tlačítko). Pojďme se podívat, jak na to.
195224
196225Př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
263300což 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
267304Funguje? 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
307351Když budou tvé změny – a změny od ostatních –
308352začleněné, můžeš si aktualizovat lokální repozitář. (To je ten,
309353který 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+
311358To se dělá příkazem
312359` git pull origin master ` (stáhni změny
313360z větve „master” z adresy pod zkratkou „origin”).
314361Pomocí ` gitk --all ` nebo ` git log `
315362se 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+
317368Gratuluji! Právě jsi {{gnd('prošel', 'prošla')}} „kolečkem“,
318369které většina programátorů dělá denně: udělání nějaké změny,
319370odeslá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
360411README by mělo být členěné a jeho přečtení by nemělo zabrat uživateli hodinu,
361412vě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)
365415a odkázat uživatele na patřičný návod.
366416Je 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
370420GitHub (a spousty jiných podobných služeb) umožňuje pro README použít nějaký
371421značkovací jazyk, například [ Markdown] ( https://cs.wikipedia.org/wiki/Markdown ) .
372422Je 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
375425kdokoli z celého světa, bývají open-source projekty v angličtině.
376426Jména proměnných, komentáře, dokumentace – všechno
377427je primárně v anglické verzi.
@@ -385,8 +435,10 @@ to bude velice složité.
385435Aby sdílení fungovalo i pro právní stránce,
386436nestačí když nahraješ kus kódu na Internet.
387437Musíš 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
391443Problematika licencí může být, bohužel, docela složitá.
392444Když to ale zjednodušíme na minimum, budeš
@@ -408,6 +460,7 @@ licenci [MIT](https://choosealicense.com/licenses/mit/).
408460
409461Kód se nejčastěji licencuje tak, že text licence
410462dáš do souboru jménem ` LICENSE ` a přidáš do Gitu.
463+ Je dobré licenci zmínit i v souboru ` README ` .
411464
412465Chceš-li si o licencích přečíst něco víc, odkážu tě na
413466[ choosealicense.com] ( http://choosealicense.com/ ) ,
0 commit comments