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

Post on 21-Sep-2020

1 views 0 download

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

Trabajando en Equipo con

Git y Github

harysvizcaino@gmail.com

Harys Vizcaino

@harysvizcaino

Agenda

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

Extras

• Git ignore• Zenhub• Nomellevomuchoconla

Consola

$ git commit

El‘commit’nosayudaaguardarloscambiosquefueronhechosaunarchivoodirectorioennuestroregistrodegit.

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

git commit –m“MENSAJE”

$ Moviendonos entre commits

Encualquiermomentopodemosquererdeshacercambios,modificaruncommit ovolveraalgúnestadoanteriordenuestroproyecto.git commit

$ 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

$ git checkout ID

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

$ Trabajando con Repositorios remoto

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

$ git clone [ url ]

git cloneurl

SideseasobtenerunacopiadeunrepositorioGitexistente—porejemplo,unproyectoenelquetegustaríacontribuir— elcomandoquenecesitases git clone

$ git remote

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

$ Agregando repositorios remotos

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

git remote add [nombre][url]

$ git fetch & git pul l

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

$ git push

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

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

$ El iminando y renombrando repos i tor ios remotos

Siqueremosrenombrarunareferenciaaunrepositorioremoto,podemosejecutarelcomandogit remote rename encasoquequeramoseliminarelrepositoriopodemosejecutarelcomandogit rm

$ Branches [ git branch ]

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

$ git & github

C0 C2C1

master

$ git & github

C0 C2C1

nosotros

master

$ git & github

C0 C2C1

nosotros

master

C3

$ git & github

C0 C2C1

nosotros

master

C3

C4

bug

C0 C2C1

nosotros

master

C3

C4

bug

C0

C5

C1

nosotros

master

C3

C4C2

C0

C5

C1

nosotros

master

C3

C4C2

C0

C5

C1

nosotros

C3

C4C2 C6

master

$ git confl ict

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

$ git fork & contribuir a proyectos de terceros

Hacerunfork deunrepositorionospermiteexperimentarlibrementeconcambiossinafectarunproyectooriginal.

Elusomascomúndefork esparaproponercambiosaproyectosdealguienmasoparausarelproyectodealguienmascomopuntodeiniciodenuestropropioproyecto.

$ 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

$ Pul l request

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

Cuandoestamostrabajandocomopartedeunequipo,debemosserunpocomascuidadosos,esalli dondeentraenjuegoelusodelospull request.

$ Git Ignore

Unarchivogitignore especificalosarchivosquequeremosquegit ignoredeformaintencionallosarchivosyaconocidosporgit nosevenafectados.

F-!-N

harysvizcaino@gmail.com

Harys Vizcaino

@harysvizcaino