comandos git

7
 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 añadir 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 básico en Git es algo así: --Modificas una serie de archivos en tu directorio de trabajo. --Preparas los archivos, añadiendo instantáneas de ellos a tu área de preparación. --Confirmas los cambios, lo que toma los archivos tal y como están en el área de pre paración, y almacena esa instantánea 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 [email protected] Ayuda $ git help <comando>

Upload: helbert-arias

Post on 14-Jul-2015

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 1/7

 

Git***********************---------------------------------

Conceptos en resumen

- Tres Estados o AreasArea de trabajo

Area de Preparacion --stagedArea de Repositorio

- VersionamientoTag = Etiquetastag -a = Etiqutas anotadas - objeto con informacion propia - apunta a un committag = etiqutas ligeras - apuntador a un commit

- Ramas Branchlineas de desarrollomaster = 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 añadir algo concreto - ramas temporales - de cortavida.

- Uniendo Ramas - MergeFast-forward = es cuando en la union simplemente cambia el puntero.

- Repositorios Remotoslos repositorios

- Glosario

commit = revisionchecksum = hash SHA-1 = identificador unico de archivos y objetosHEAD = apuntador de la rama donde me encuentro trabajando.

-El flujo de trabajo básico en Git es algo así:--Modificas una serie de archivos en tu directorio de trabajo.--Preparas los archivos, añadiendo instantáneas de ellos a tu área de preparación.--Confirmas los cambios, lo que toma los archivos tal y como están en el área de preparación, y almacena esa instantánea de manera permanente en tu directorio de Git.

Dos tipos de Repositorioslos Bear - Sin Area de Trabajo - son repositorios pelaoslos Normales - Con Area de trabajo.

Comenzando Git

Configuracion - usuario y email.$ git config --global user.name "Helbert Arias"$ git config --global user.email [email protected]

Ayuda$ git help <comando>

Page 2: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 2/7

 

$ 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 confirmación$ 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" HEADotro 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

Page 3: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 3/7

 

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 modificado(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 staged(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/preimp_informe_auditoria.php

deshacer o descarta cambios en el area de preparacion (borrar lo que hay en areade preparacion)$ git reset

descarta cambios en el area de trabajo o recupera del area de preparacion o delultimo 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 commitpero no lo borra del area de trabajo.(quitarlo del control de versiones)$ git rm --cached archivo.txt

Page 4: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 4/7

 

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.gitcambiando 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 puntero en la nueva rama creada- las ramas remotas no se pueden modificar

Page 5: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 5/7

 

$ 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 luegocopar el archivo C:\Archivos de programa\TkDiff\tkdiff.exe a C:\Archivos de programa\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 conflictosnos 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 conflictoy luego git add y git commit

Enviando a Repositorio remoto - Pushsintaxis$ git push URL origen:destino$ git push repositorio_remoto_destino rama_local:rama_remotaejemplos$ git push ~/"Mis documentos/sandbox2/.git" eje3:eje3sin especificar rama remota significa que es la misma$ git push ~/"Mis documentos/sandbox2/.git" eje3si no pongo especifico ramastodas la ramas que se llamen igual de mi repositorio en el repositorio remoto seactualizaran$ git push ~/"Mis documentos/sandbox2/.git"

actualizar del repositorio que clone$ git push origin

Recibir de Repositorios remotos - Fetchactualiza 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 actualizacionesque 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

Page 6: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 6/7

 

actualiza cambios del original sin parametros$ git pull

crear alias o apodos a repositorios remotos$ git remote add alias URLejemplo

$ 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/añadiendo 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 stagegit reset --hard HASH

# modificar un antiguo commit (se modifica sólo ese commit):git revert HASH

# Por defecto, reflog almacena los commits de los últimos 90 días.# A partir de esa fecha, git-gc eliminará los commits de más de 90 días.# Para modificar la duración, hacemos:git config --add gc.reflogexpire [ 30.days 30.minutes 30.seconds ]

# Crear un repositorio desnudo (sin carpeta de trabajo)git clone --bare .git ../para_server/gci_pg_cardif.git

# Crear un repositorio desnudo (sin carpeta de trabajo) (con la opcion -l local)git clone --bare -l .git ../para_server/gci_pg_cardif_2.git

También puedes añadir la opción -v, que muestra la URL asociada a cada repositorio remoto:git remote -v

Page 7: Comandos Git

5/12/2018 Comandos Git - slidepdf.com

http://slidepdf.com/reader/full/comandos-git-55a4d44c77412 7/7

 

############### Trabajando con repositorios remotos ######################git Push -> Enviagit Pull <- Recibe - para recuperar y unir automáticamente la rama remota con tu rama actual. - recupera la información del servidor del que clonaste, y automáticamente se intenta unir con el código con el que estás trabajando actualmente.git Fetch <- Recibe - recupera toda la información enviada a ese servidor desde que lo clonaste (o desde la última vez que ejecutaste fetch).

git clone <- Clona o Recibe un repositorio remoto - automáticamente configura tu rama local maestra para que siga la rama remota maestra del servidor del cual clonaste

# renombrar repositorio remotogit remote rename pb paul

# renombrar repositorio remotogit remote rm paul

### Copiar al Servidor

scp id_rsa.harias.pub [email protected]:/tmp/

## enviar repositorio sin adicionar remoto todas las ramasgit push --all [email protected]:gci_pg_cardif

## enviar repositorio sin adicionar remoto todas las etiquetas (versiones)git push --tags [email protected]:gci_pg_cardif

#gitolite - enviar repositorio

git push --all git@server:reponamegit push --tags git@server:reponame