Sei sulla pagina 1di 6

Git*********************** --------------------------------Conceptos en resumen - Tres Estados o Areas Area de trabajo Area de Preparacion --staged Area de Repositorio - Versionamiento Tag

= Etiquetas tag -a = Etiqutas anotadas - objeto con informacion propia - apunta a un commit tag = etiqutas ligeras - apuntador a un commit - Ramas Branch lineas de desarrollo master = la rama por omision de git (rama por defecto) se puede crear una rama llamada develop que se puede usar como rama de desarroll o. feature branch = son ramas para aadir algo concreto - ramas temporales - de corta vida. - Uniendo Ramas - Merge Fast-forward = es cuando en la union simplemente cambia el puntero. - Repositorios Remotos los repositorios - Glosario commit = revision checksum = hash SHA-1 = identificador unico de archivos y objetos HEAD = apuntador de la rama donde me encuentro trabajando. -El flujo de trabajo bsico en Git es algo as: --Modificas una serie de archivos en tu directorio de trabajo. --Preparas los archivos, aadiendo instantneas de ellos a tu rea de preparacin. --Confirmas los cambios, lo que toma los archivos tal y como estn en el rea de pre paracin, y almacena esa instantnea de manera permanente en tu directorio de Git. Dos tipos de Repositorios los Bear - Sin Area de Trabajo - son repositorios pelaos los Normales - Con Area de trabajo.

Comenzando Git Configuracion - usuario y email. $ git config --global user.name "Helbert Arias" $ git config --global user.email helbertgus@gmail.com Ayuda $ git help <comando>

$ git help config $ git <comando> --help Inicia Repositorio $ git init adicionar al area de preparacion --staged (agrega al control de versiones) $ git add archivo.txt incluir archivos al contro de versiones $ git add ./\*.php ./\*.js ./\*.css ./\*.html ./\*.htm $ git add ./\*.jpg ./\*.gif ./\*.png $ git add ./\*.map ./\*.bat hacer commit para enviar al repositorio - revision $ git commit -m "Primer commit" hacer commit omitiendo el sataged osea que commitea todo $ git commit -a deshacer ultma confirmacion o revision - volver a hacer la confirmacin $ git commit --amend ver objeto commit - del apuntador Head $ git cat-file -p HEAD ver cheksum Head $ git cat-file -p HEAD: listando etiquetas $ git tag listar etiquetas con filtro $ git tag -l 'v1.4.2.*' Crear etiqueta anotadas (publicas) para versionamiento $ git tag -a v1.0 -m "version 1.0" HEAD otro ejemplo $ git tag -a v1.4 -m 'my version 1.4' ver informacion etiqueta $ git show v1.4 ver objeto tag $ git cat-file -p v1.0 ver movimiento del aputador HEAD $ git reflog

ver estado de git - para ver que esta dentro y fuera del staged $ git satatus ver diferencia entre estados ver la diferencia entre el staged si hay si no el ultimo commit y los archivos m odificado (que fue lo ultimo que se cambio) $ git diff ver la diferncia entre la ultima revision (commit) y el staged (que es lo que voy a adicionar en un nuevo commit) $ git diff --staged ver la diferencia entre el ultimo commit y el area de trabajo ominiendo el stage d (que es todo lo nuevo con respecto al ultimo commit) $ git diff HEAD comparacion entre los dos ultimos commits $ git diff HEAD^ HEAD hacer la comparacion con una heramienta grafica tkdiff $ git difftool --tool=tkdiff HEAD^ HEAD comparacion a un archivo especifico $ git difftool --tool=tkdiff HEAD^ HEAD informes/preimpresa_informe_auditoria/pr eimp_informe_auditoria.php

deshacer o descarta cambios en el area de preparacion (borrar lo que hay en area de preparacion) $ git reset descarta cambios en el area de trabajo o recupera del area de preparacion o del ultimo commit $ git checkout -- file elimina el archivo (pero si tiene modificaciones advierte y no lo deja borrar) (para que se haga primero un commit y en proximo commit se borre) prepara para borrado $ git rm archivo.txt fuerza la elimacion del archivo completamente. $ git rm -f archivo.txt borra el archivo del area de preparacion para no ser incluido en el proximo comm it pero no lo borra del area de trabajo. (quitarlo del control de versiones) $ git rm --cached archivo.txt

ver Revisiones (commits) y tags en interfaz grafica $ gitk ver en interfaz web $ git instaweb busca determinada palabra o frase en los archivos bajo control de versiones $ git grep palabra ver historial de commit $ git log otra froma mas resumida $ git log --pretty=oneline historial grafico (tags, HEAD, ramas) $ git log --graph --pretty=oneline --decorate=short --abbrev-commit historial que tenga una palabra $ git log -Stexto ver los parches con las diferencias $ git log -p ver los parches $ git log --stat clonar un repositorio remoto $ git clone https://neptuno.uca.es/git/sandbox-git tambien con el protocolo git propio $ git clone git://git.kernel.org/pub/scm/git/git.git cambiando el nombre de la carpeta destino $ git clone https://neptuno.uca.es/git/sandbox-git sandbox2 ver que ramas hay locales $ git branch ver ramas remotas $ git branch -r crear una rama (sintaxis: git branch nombre_rama revision) $ git branch mirama HEAD borrar rama (si hay perdida de datos no deja borrar la rama) $ git branch -d mirama cambiar entre ramas $ git checkout mirama ver historial ramas con gitk - Entorno grafico $ gitk master mirama seguir rama remota (crea una rama local apartir de una remoto) y ubican el punte ro en la nueva rama creada - las ramas remotas no se pueden modificar

$ git checkout -b rama_sigue_remota rama_remota unir o combinar ramas $ git merge rama_a_combinar

resolucion de conflictos ver que herramientas tengo (ojo es recomendable tener tkdiff instalado) $ git mergetool Opcionalmente - Muy Recomendable - Para Windows instalar tkdiff.exe y luego copar el archivo C:\Archivos de programa\TkDiff\tkdiff.exe a C:\Archivos de prog rama\Git\bin\ y luego ya se puede utilizar tkdiff asi: $ git mergetool -tool=tkdiff tambien se puede quedar con una versio o otra en la resolucion de conflictos nos quedamos con lo que teniamos $ git checkout --ours nos quedamos con lo que reunimos $ git checkout --theirs o tambien podemos editar los marcadores a mano que genera git por el conflicto y luego git add y git commit

Enviando a Repositorio remoto - Push sintaxis $ git push URL origen:destino $ git push repositorio_remoto_destino rama_local:rama_remota ejemplos $ git push ~/"Mis documentos/sandbox2/.git" eje3:eje3 sin especificar rama remota significa que es la misma $ git push ~/"Mis documentos/sandbox2/.git" eje3 si no pongo especifico ramas todas la ramas que se llamen igual de mi repositorio en el repositorio remoto se actualizaran $ git push ~/"Mis documentos/sandbox2/.git" actualizar del repositorio que clone $ git push origin Recibir de Repositorios remotos - Fetch actualiza el repositorio local de todos los repositorios remotos (si hay 5 repositorios ligados de los 5 actualiza) $ git fetch --all luego hacer un merge de la rama remota a la rama local para traerme las actualiz aciones que recibi por el fetch la orden para hacer las dos cosas el fetch y el merge - Pull ??????? sintaxis $ git pull repositorio_remoto rama_local:rama_remota

actualiza cambios del original sin parametros $ git pull crear alias o apodos a repositorios remotos $ git remote add alias URL ejemplo $ git remote add gitorious git://gitorious.org/curso-git-osluca/mainline.git ver estado del repositorio remoto (con el alias) $ git remote show gitorious Crar un archivo comprimido del proyecto en su estado actual para distribucion $ git archive -o latest.zip HEAD # Descartar todos los cambios (eliminando/aadiendo archivos) y # volver a un estado concreto del proyecto: # Cuidado! Esto elimina todos los commits hechos! # No aplicarlo en commits anteriores a un git-push, ya que # no podremos hacer push sobre el repositorio remoto. git reset --hard HASH # Para forzar el push en el repositorio remoto (NO RECOMENDABLE): git push origin +master # recuperar commits eliminados: git reflog # una vez identificado el commit a recuperar, hacer: git reset --mixed HASH # ojo que este borrar los archivos modificados y del stage git reset --hard HASH # modificar un antiguo commit (se modifica slo ese commit): git revert HASH # Por defecto, reflog almacena los commits de los ltimos 90 das. # A partir de esa fecha, git-gc eliminar los commits de ms de 90 das. # Para modificar la duracin, hacemos: git config --add gc.reflogexpire [ 30.days 30.minutes 30.seconds ]

Potrebbero piacerti anche