Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $...

28
Trabajando en Equipo con Git y Github [email protected] Harys Vizcaino @harysvizcaino

Transcript of Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $...

Page 1: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

Trabajando en Equipo con

Git y Github

[email protected]

Harys Vizcaino

@harysvizcaino

Page 2: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

Agenda

• Conocermejorloscommit• Repositoriosremotos• Fetch• Pull• push• branches• Merge• Conflictos• Fork• Pull request

Extras

• Git ignore• Zenhub• Nomellevomuchoconla

Consola

Page 3: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git commit

El‘commit’nosayudaaguardarloscambiosquefueronhechosaunarchivoodirectorioennuestroregistrodegit.

Importante:cuandohacemosuncommit elcommit nospediraqueintroduzcamosunmensaje,esrecomendablequeestemensajecontengaunpocodeinformaciónde‘queexactamentetocamosenelcodigo oeneldirectorioyelporque’.

git commit –m“MENSAJE”

Page 4: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Moviendonos entre commits

Encualquiermomentopodemosquererdeshacercambios,modificaruncommit ovolveraalgúnestadoanteriordenuestroproyecto.git commit

Page 5: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git commit --amend

Estecomandoutilizaloquehayaentuáreadepreparaciónparaelcommit.Sinohashechoningúncambiodesdelaúltimaconfirmación(porejemplo,siejecutasestecomandojustodespuésdetucommit anterior),estainstantáneaseráexactamenteigual,yloúnicoquecambiarásseráelmensajedeconfirmación.

git commit --amend

Page 6: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git checkout ID

Congit checkout podemosmovernosentrer commits yentrebranches,haciendoungit checkout IDdelcommit podemosregresarauncommit anterioryvercomoestabanuestrocódigoonuestrodirectorioeneseentonces,tambiénpodemosmodificarcosas,soloqueparatraeresoscambiosalpresentenecesitaríamoscrearunnuevobranch yluegohacerunmerge deestebranch

Page 7: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Trabajando con Repositorios remoto

ParapodercolaborarencualquierproyectoGit,necesitassabercómogestionartusrepositoriosremotos.LosrepositoriosremotossonversionesdetuproyectoqueseencuentranalojadosenInternetoenalgúnpuntodelared.Puedestenervarios,cadaunodeloscualespuedeserdesólolectura,odelectura/escritura,segúnlospermisosquetengas.Colaborarconotrosimplicagestionarestosrepositoriosremotos,ymandar(push)yrecibir(pull)datosdeelloscuandonecesitescompartircosas.

Page 8: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git clone [ url ]

git cloneurl

SideseasobtenerunacopiadeunrepositorioGitexistente—porejemplo,unproyectoenelquetegustaríacontribuir— elcomandoquenecesitases git clone

Page 9: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git remote

Paraverquérepositoriosremotostienesconfigurados,puedesejecutarelcomando git remote.Mostraráunalistaconlosnombresdelosremotosquehayasespecificadoelrepositorioquehemosclonadodebeaparecercomo"origin"

Page 10: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Agregando repositorios remotos

Paraagregarunrepositorioremotousamoselcomando‘gitremote ’conlaopción‘add ’seguidodelnombreconelquenombraremoselenlacedelrepositoriomaslaurl delrepositorio

git remote add [nombre][url]

Page 11: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git fetch & git pul l

git fetch: Estecomandorecuperatodoslosdatosdelproyectoremotoquenotengamosaunennuestrocopialocaldelproyecto.Luegodeejecutarestecomandodeberíamostenerreferenciaatodaslasramasdelrepositorio.git pull:pararecuperaryunirautomáticamentelaramaremotaconturamaactual.

Page 12: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git push

Cuandotuproyectoseencuentraenunestadoquequierescompartir,tienesqueenviarloaunrepositorioremoto.Elcomandoquetepermitehacerestoessencillo: git push Siquieresenviarturamamaestra(master)atuservidororigen(origin),ejecutaríasestoparaenviartutrabajoalservidor:

git push [nombre-remoto][nombre-rama].

Page 13: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ El iminando y renombrando repos i tor ios remotos

Siqueremosrenombrarunareferenciaaunrepositorioremoto,podemosejecutarelcomandogit remote rename encasoquequeramoseliminarelrepositoriopodemosejecutarelcomandogit rm

Page 14: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Branches [ git branch ]

Las‘ramas’branches esesencialmenteunalíneadedesarrolloindependiente.Podemostomarventajadeellascuandosetrabajaennuevos‘features’oarreglandoerrores‘bugs’.

Page 15: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git & github

C0 C2C1

master

Page 16: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git & github

C0 C2C1

nosotros

master

Page 17: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git & github

C0 C2C1

nosotros

master

C3

Page 18: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git & github

C0 C2C1

nosotros

master

C3

C4

bug

Page 19: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

C0 C2C1

nosotros

master

C3

C4

bug

Page 20: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

C0

C5

C1

nosotros

master

C3

C4C2

Page 21: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

C0

C5

C1

nosotros

master

C3

C4C2

Page 22: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

C0

C5

C1

nosotros

C3

C4C2 C6

master

Page 23: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git confl ict

Elalgunasocasiones,losprocesosdefusión‘merge’nosuelensertanfluidoscomoenloscasosanteriores,sihaymodificacionesdisparesendistintasramasgit noserácapazdefusionarlasdirectamente.Sialguienmodificolamismaporsiondecódigoquemodificamosennuestraramacuantointentemoshacerlafusiónsecrearaunconflictodefusion.

Page 24: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ git fork & contribuir a proyectos de terceros

Hacerunfork deunrepositorionospermiteexperimentarlibrementeconcambiossinafectarunproyectooriginal.

Elusomascomúndefork esparaproponercambiosaproyectosdealguienmasoparausarelproyectodealguienmascomopuntodeiniciodenuestropropioproyecto.

Page 25: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Mantener el proyecto actual izado

Paramantenerelproyectoactualizadoagregamoselproyectooriginal‘proyectodesdeelrealizamoselfork’comounproyectoremotoyhacemosfetch yluegoelmerge.

1– agregamoselproyectooriginalcomoremotogit remote add upstream [url]

2- hacemoselfetch delproyectoparadescargartodosloscambiosrelizadosen enelproyectooriginalgit fetch nombredadeo [upstream]

3– nosmovemosamaster(encasoquenoestemosenmaster)yhacemosmerge delproyectoonlineennuestroproyectolocal.git merge upstream/master

Page 26: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Pul l request

Básicamenteunpull request esunapeticiónparaintegrarnuestraspropuestas ocambiosdecódigo aunproyecto.

Cuandoestamostrabajandocomopartedeunequipo,debemosserunpocomascuidadosos,esalli dondeentraenjuegoelusodelospull request.

Page 27: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

$ Git Ignore

Unarchivogitignore especificalosarchivosquequeremosquegit ignoredeformaintencionallosarchivosyaconocidosporgit nosevenafectados.

Page 28: Trabajando en Equipo con Git y Githubcticdominicana.com/wp-content/uploads/2016/12/Git... · $ Trabajando con Repositorios remoto Para poder colaborar en cualquier proyecto Git, necesitas

F-!-N

[email protected]

Harys Vizcaino

@harysvizcaino