Llicència
Pots copiar i redistribuir aquest material seguint la llicència Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, indicant-ne autors originals, l'origen (aquesta web), sense fins comercials i mantenint-ne aquesta la llicència
Autors:
Exercicis Git - Terminal
Sumari
Monkey Island
Com a experts dissenyadors us han encarregat crear un document on defineixi com serà un videojoc. Anem per feina!
- Gaurdarem tots els arxius en una carpeta anomenada gitBasic
- Usarem arxius de text pla per guardar la informació.
- Usarem la nomenclatura markdown
Iniciar repositori
- El primer pas serà crear el repositori git.
- Observa què ha canviat en el directori
- Podem veure l'estat del nostre repositori
Primer document
- Crea un document de text nou (.txt) amb el nom "videojoc.txt" i escriu-hi:
# Videojoc
- Aquest document contindrà la definició del joc.
- Mira l'estat del repositori. Ens hauria d'indicar que hi ha un fitxer nou.
Afegir canvis a staging
-
Per poder versionar el nou document primer l'hem d'afegir a staging
-
Mira l'estat del repositori.
Afegir canvis al repositori
- Confirmem els canvis al repositori git (fem un commit). El missatge podria ser: "inici document videojoc"
- Mira l'estat del repositori.
Log
Podem veure els diferents commits que s'han fet al repositori amb la comanda
git log
Modificació del document
Seguim definint el videojoc. Comencem a escriure l'argument que tindrà. Decidim fer un videojoc de pirates.
- Afegeix el següent text al document
# Breu història
Situada en un arxipèlag sense concretar del Carib i en una època indefinida la història comença quan el protagonista, Guybrush Threepwood, arriba a l'illa de Mêlée amb l'aspiració d'esdevenir un pirata.
Allà, busca els líders dels pirates que li demanen superar tres proves per a poder convertir-se en un d'ells, la primera prova consisteix a vèncer la mestra de l'espasa, Carla, en un duel d'insults, la seguna en trobar un tresor enterrat i la tercera en robar una figura de la casa de la governadora de l'illa, Elaine Marley, de qui s'enamora immediatament.
- Afegeix els canvis al git.
Desfer canvis
-
Afegeix la continuació de l'argument, més tard t'arrepenteixes i decideixes tornar a la versió anterior
-
Mira l'estat del repositori.
-
Desfés els canvis i torna a la versió del git usant
git checkout <filename>
Ignorar fitxers
Volem tenir un fitxer anomenat privat.txt, que no volem guardar-lo al git.
- Crea el fitxer amb el següent contingut
Fitxer privat
.gitignore és útil per ignorar arxius generats automàticament, arxius que contenen informació sensible
- Mira l'estat del repositori.
Podem crear un fitxer anomenat .gitignore on hi llistarem els fitxers que volem amagar al git.
- Crea el fitxer .gitignore amb el contingut
privat.txt
- Mira l'estat del repositori. El fitxer privat.txt ja no hauria d'apareixer.
Nota: Si un fitxer ja està sent rastrejat pel git, afegir-lo al gitignore no tindrà efecte.
Treballar amb branques
Ja tenim la història del videojoc acabada i preparada per presentar-la. Ara volem treballar en la definició del sistema de joc, però volem mantenir la versió actual del document per si l'hem d'imprimir. Per fer-ho farem servir el sistema de branques de git.
- Crearem una branca nova on afegirem el sistema de joc i deixarem l'actual amb l'història acabada.
La branca inicial és diu master. Ho pots comprobar fent git status
Per crear una branca nova
git branch game_system
- Per canviar la branca amb la que estàs treballant has d'usar la comanda git checkout:
git checkout game_system
-
Mira l'estat i comproba que estàs treballant a la branca game system
-
Afegeix el següent text al final del document i registra els canvis al repositori.
# Sistema de joc El sistema de joc consisteix en una pantalla dividida en dues parts principals, la superior conté els gràfics i el cursor, i la inferior una sèrie de menús i botons que permeten realitzar accions i combinar elements que hem anat adquirint durant el joc.
Modificar arxius
Encara no hem acabat el sistema de joc, però hem vist que hi ha un error tipogràfic a l'història. On hauria de posar segona posa seguna.
-
Mira l'estat i mira que no hi hagi cap canvi pendent de registrar.
-
Necessitem treballar amb la branca master, usa la comanda checkout per canviar de branca.
Un cop siguis a la branca master no hauries de veure la part del sistema de joc.
- Modifica seguna per segona, i regitra els canvis al git.
Merge
Donem per finalitzat el sistema de joc, i hem d'aplicar els canvis que hem fet a la branca game_system a la branca master.
Primer de tot assegura't que ets a la branca master usant git status
Per aplicar els canvis usa
git merge game_system
Eliminar branca
Finalment, la granca game_system ja no ens interessa i la podem esborrar.
Pots llistar les branques usant
git branch
Per eliminar la branca game_system usa:
git branch -d game_system
Conflictes
Afegim imatges
Per millorar el document decidim posar algunes imatges al document. Crea una branca nova anomenada "imatges", i afegeix la imatge al final del document. Registra els canvis al git.
Usarem el format markdown. Descarrega't la imatge i guarda-la també al directori.
![Guybrush Threepwood](Guybrush_Threepwood.png)
Completar sistema de joc
Mentre afegim les imatges, veiem que el sistema de joc no està ben definit i decidim ampliar-lo.
- Torna a la branca master i afegeix el següent text al final de sistema de joc i registra els canvis al git.
Es tracta d'un joc en tercera persona en què veiem constantment en pantalla el protagonista, en Guybrush Threepwood, a qui dirigim.
Merge & conflict
Decidim que les imatges que hem afegit ja estan bé. Per tal d'afegir-les fes un merge.
Llegeix que indica el merge.
git checkout master
git merge imatges
Conflict
Quan fem un merge de dues branques ens pot passar que les dues hagin modificat el mateix fitxer, i apareix un clonflicte. Quan hi ha un conflicte git primer intentarà, de forma automàtica, unir els canvis fets i solucionar-lo. Si no pot fer-ho de forma automàtica ens indicarà que hi ha un conflicte i l'haurem de solucionar de forma manual.
- Edita el fitxer resultant, deixa la versió definitva i registra els canvis al git.
Extra - Status
Has d'aconseguir que l'status et retorni el següents missatges. Pots utilitzar el git de l'exercici 1.
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: README
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: README
modified: CONTRIBUTING.md
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md