1
- {% set coach_username = var('coach-username') or 'encukou ' %}
1
+ {% set coach_username = var('coach-username') or 'naucse ' %}
2
2
3
3
# Spolupráce
4
4
5
5
„Opravdové” programy zřídka vznikají prací jednoho člověka.
6
6
Víc hlav víc ví, a tak je dobré si na projekt vytvořit tým.
7
7
8
8
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ář* ,
10
10
se kterým se všichni budou synchronizovat.
11
11
12
12
> [ note] Pro samostudium
@@ -19,8 +19,8 @@ se kterým se všichni budou synchronizovat.
19
19
> [ note] Pro kouče
20
20
> Udělej na GitHubu repozitář jménem ` prezencka ` a dej do
21
21
> 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).
24
24
25
25
26
26
## Open Source
@@ -155,26 +155,55 @@ a zkus se podívat na historii (`gitk` nebo `git log`).
155
155
Možná je krátká, ale hlavně, že nějaká je.
156
156
Máš na počítači kopii projektu, který založil někdo jiný!
157
157
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
+
158
186
159
187
## Posílání změn <small >(<code >git push</code >)</small >
160
188
161
189
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 > ).
164
192
165
193
Teď zbývá „jen” změnu začlenit do původního sdíleného repozitáře.
166
194
To ale není jen tak: repozitář, který jsi
167
195
naklonoval{{a}}, patří koučovi. A tomu by se asi
168
196
nelíbilo, kdyby kdokoliv na Internetu mohl přijít
169
197
a nahrát mu do repozitáře změny.
170
198
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í .
174
202
175
- S Gitem se používá jiný přístup :
203
+ S Gitem se používá trožku jiný mechanismus :
176
204
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š
178
207
žádost o začlenění těch změn (angl. * pull request* ).
179
208
Může to být třeba mail se slovy „Hele, na té a té
180
209
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
185
214
předem ptát, nemusíš dokazovat že jsi důvěryhodná
186
215
osoba, stačí něco změnit a poslat.
187
216
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 .
190
219
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čí
194
223
zmáčknout tlačítko). Pojďme se podívat, jak na to.
195
224
196
225
Přihlaš se na GitHub a pak zajdi na adresu
@@ -205,12 +234,20 @@ adresa by měla být něco jako
205
234
> Kdybys měl{{a}} v různých kopiích repozitáře zmatek,
206
235
> přijde vhod malé vysvětlení: jedna kopie je původní
207
236
> 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
209
238
> je „tvoje“ a můžeš si do ní nahrát co chceš
210
239
> (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
+ >
214
251
> {{ figure(
215
252
img=static('gh-workflow-diagram.svg'),
216
253
alt='Diagram tří repozitářů'
@@ -257,12 +294,12 @@ Pak už můžeš změny nahrávat pomocí:
257
294
258
295
259
296
<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
261
298
</code ></pre ></div >
262
299
263
300
což znamená: pošli na adresu uloženou pod zkratkou
264
301
<code ><i >tvojejmeno</i ></code >
265
- větev ` master ` .
302
+ větev ` pridani-jmena ` .
266
303
267
304
Funguje? Podívej se na
268
305
<code >https://github.com/ <i >tvojejmeno</i >/prezencka</code >
@@ -301,19 +338,33 @@ o tom, jak je ještě vylepšit.
301
338
> To může trvat i pár dní; kdyby to bylo přes týden,
302
339
> tak se na stránce * pull requestu* zkus připomenout.
303
340
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
+
304
348
305
349
## Aktualizace <small >(<code >git pull</code >)</small >
306
350
307
351
Když budou tvé změny – a změny od ostatních –
308
352
začleněné, můžeš si aktualizovat lokální repozitář. (To je ten,
309
353
který máš u sebe na počítači.)
310
354
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
+
311
358
To se dělá příkazem
312
359
` git pull origin master ` (stáhni změny
313
360
z větve „master” z adresy pod zkratkou „origin”).
314
361
Pomocí ` gitk --all ` nebo ` git log `
315
362
se můžeš podívat, jak se projekt mezitím vyvinul.
316
363
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
+
317
368
Gratuluji! Právě jsi {{gnd('prošel', 'prošla')}} „kolečkem“,
318
369
které většina programátorů dělá denně: udělání nějaké změny,
319
370
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.:
359
410
360
411
README by mělo být členěné a jeho přečtení by nemělo zabrat uživateli hodinu,
361
412
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)
365
415
a odkázat uživatele na patřičný návod.
366
416
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ů.
369
419
370
420
GitHub (a spousty jiných podobných služeb) umožňuje pro README použít nějaký
371
421
značkovací jazyk, například [ Markdown] ( https://cs.wikipedia.org/wiki/Markdown ) .
372
422
Je možné pak používat nadpisy, obrázky apod.
373
423
374
- V neposlední řadě – aby se do projektu mohl zapojit
424
+ A v neposlední řadě: aby se do projektu mohl zapojit
375
425
kdokoli z celého světa, bývají open-source projekty v angličtině.
376
426
Jména proměnných, komentáře, dokumentace – všechno
377
427
je primárně v anglické verzi.
@@ -385,8 +435,10 @@ to bude velice složité.
385
435
Aby sdílení fungovalo i pro právní stránce,
386
436
nestačí když nahraješ kus kódu na Internet.
387
437
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.
390
442
391
443
Problematika licencí může být, bohužel, docela složitá.
392
444
Když to ale zjednodušíme na minimum, budeš
@@ -408,6 +460,7 @@ licenci [MIT](https://choosealicense.com/licenses/mit/).
408
460
409
461
Kód se nejčastěji licencuje tak, že text licence
410
462
dáš do souboru jménem ` LICENSE ` a přidáš do Gitu.
463
+ Je dobré licenci zmínit i v souboru ` README ` .
411
464
412
465
Chceš-li si o licencích přečíst něco víc, odkážu tě na
413
466
[ choosealicense.com] ( http://choosealicense.com/ ) ,
0 commit comments