GIT - Principals comandaments


Els apunts originals són d’@inclusa, aniré modificant i actualitzant al gust amb el que vaja aprenent de GITHub… Gràcies!!

Comandaments fonamentals

Iniciar un repositori git

$ git init

Configurar-lo

$ git config --global user.name "John Doe"

$ git config --global user.email johndoe@example.com

Genera claus ssh

$ ssh-keygen

Evitar que GIT demane usuari i contrasenya

$ git config --global credential.helper store

La contrasenya del repositori remot queda magatzemada al fitxer .git-credentials

Seguir els canvis

$ git status

Afegir arxius de rastreig

Cada vegada que modifiquem alguna cosa cal dir-li a GIT que ho tinga en compte.

$ git add .

Clonar repositori remot

$ git clone https://github.com/sasogu/sasogu

Sincronitzar des del repositori remot al local

$ git pull

Sincronitzar des del repositori local al remot

$ git push

Opcional afegir la ruta htpps per apuntar a un repositori concret.

Si entrem en pànic

Desfer últim commit

$ git reset --hard HEAD~1

Desfer fins arribar a 5 commits abans

$ git reset --hard HEAD~5

Consulta la font

Editant l’últim commit i l’última confirmació

$ git commit --amend

La instantània és la mateixa, sols pots canviar el que has posat com a missatge del commit

Si fallem podem tornar enrere

$ git checkout --fitxer

Inclús podem dir “tot el que hem fet fins ara no val per a res”

$ git fetch origin && git reset --hard origin/master

Treballant amb branques

Crear branca

$ git checkout -b gh-pages

checkout → canvia de branca

-b → crea la branca

Canviar de branca

$ git checkout master

Mirar en quina branca estem

$ git branch

Canviar tot el contingut d’una branca

Sobreescrivim una branca a altra:

  git branch -m master old-master
  git branch -m gh-pages master
  git push -f origin master

-m renomena

-f força

Borrar branca i borrar-la del server

Objectiu: volem borrar la branca gh-pages

$ git branch -d gh-pages           ##  elimina branca local

$ git push origin :gh-pages        ##  elimina branca remota

Branques en GIT

Tots els projectes, per defecte, tenen la branca MASTER on, al final, acaben tots els desenvolupaments que fem.

Podem definir altra branca, per exemple, DEVELOP on anar fent tots els xicotets canvis que necessitem fer.

Quan arribem a un punt on tots els canvis que hem anat fent son estables i ens interessa que apareguen en la branca MASTER farem un merge.

Primer ens situem en la branca MASTER

$ git checkout master

Ara li diguem que porte els canvis que hem fet a DEVELOP

$ git merge develop

Ara tindrem una nova versió a la branca MASTER

Pot passar que hi hagen problemes al fer el merge, en cas que GIT no sàpiga distingir quines són les línies bones ens ho preguntarà.

Línies de treball amb branques

Les branques són línies de treball que tenen un objectiu. Posem un exemple de diferents branques amb diferents objectius de fases del treball.

MASTER: branca principal on aniran tots els canvis finals, així que, en aquest cas podríem etiquetar diverses versions explicitant les fases V0.1, v0.2, v0.3, etc.

DEVELOP: branca on es realitzen canvis més xicotets, però també es proven. Pot tenir diverses subbranques.

RELEASE: branca on podem agrupar certs passos endavant, quan está provada podrem incorporar-ho a MASTER.

	MASTER		RELEASE		DEVELOP
	X
	|
	|\
	| \ __→__→__→__→__→__→__→__→__→__→__ X
	|                                    ↓
	|                                    |
	|                                    |
	|                 X __←__←__←__←__ ← X
	|                /
	|               /
	|__←__←__←__←_ X
	X          

Altres comandaments

Publicar a un repositori existent a GITHub des de la línia de comandaments amb el protocol https://

git remote add origin https://github.com/usuari/repositori.git

git push -u origin master

Etiquetes en GIT

Podem definir etiquetes per a gestionar versions del nostre codi o punts importants de desenvolupament, de forma que després ens siga fàcil identificar les fases de desenvolupament

  $ git tag -a v1.0 -m 'Versió 1.0'     

Customitzar els colors

Configurem un alias.

Ara el cridarem git lg

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

No guardar la contrasenya en disc

$ git config --global credential.helper 'cache --timeout=3600'

Transcorreguda un hora tornarà a demanar la contrasenya.

GITHub

Fonts

Video

Comentaris