[How to] Tutorial de Git – Comando Básicos (Parte 2)

Comandos básicos

gitwork

Inicio o clonado

#Init de un proyecto existente
git init
#Si deseas empezar a controlar versiones de archivos existentes
$ git add *.c
$ git add README
$ git commit –m 'versión inicial del proyecto'
#Clonado repositorios
git clone git://github.com/schacon/grit.git name_folder_local
git clone http(s)://[email protected]:/ruta.git 
http://git-scm.com/figures/18333fig0201-tn.png

Añadir archivos

#Añadir archivos a tracking (control) o Preparar archivos modificados
git add name_file o name_folder

Status y diferencias

#Comprobar el estado de archivos
git status
# ¿Qué has cambiado pero aún no has preparado?, y ¿qué has preparado y estás a punto de confirmar?
#Es un git status linea a linea (de los archivos que aún no han sido preparados)
git diff
#Si quieres ver los cambiosde los archivos que has preparado y que irán en tu próxima confirmación
diff –-cached ( olo que es lo mismo)git diff –-staged
#Decir a git que ignore archivos
nano .gitignore
*.[log] #(extensión log)
*~ #[archivos terminados en tilde]
Ctrl + o , Ctrl +x
Las reglas para los patrones que pueden ser incluidos en el archivo .gitignore son:
     Las líneas en blanco, o que comienzan por #, son ignoradas.
     Puedes usar patrones glob estándar.
     Puedes indicar un directorio añadiendo una barra hacia delante (/) al final.
     Puedes negar un patrón añadiendo una exclamación (!) al principio.

Confirmar cambios

#Confirmar cambios (El mensage de confirmación contiene un "git status"
git commit
-v Se añadan también las diferencias de tus cambios linea a linea
-m "changes_in_mainhub" Añade comentario propio del usuario
#Confirmar cambios de todo sin especificar nada (commit automático)
git commit -a

Eliminar

#Eliminar ficheros
1. Eliminar el fichero en cuestión
#El paso anterior es opcional, sino el siguiente se encargrá de hacerlo
2. git status (aparecerá como deleted)
3. git rm name_file (preparas la eliminación del archivo)
*Si ya estaba preparado para commit puedes forzar la eliminación con ( -f)
* Puedes usar patrones como
git rm log/*.log #Elimina archivos con la extensión .log en el directorio log/
#Eliminar solo el seguimiento, se queda en tu HDD 
git rm --cached readme.txt

Mover y renombrar

git mv file_from file_to

Ejemplos de Patrones

#Todos con extensión log
*.[log] 
#Archivos terminados en tilde
*~ 
# Archivos con la extensión .log en el directorio log/
log/*.log

  Control de Cambios

Histórico de confirmaciones (commits)

#Muestra las entradas de más reciente a más antigua
git log
 -p # Que muestra las diferencias introducidas en cada confirmación. 
 -n # Que hace que se muestren únicamente las últimas n entradas.
 --stat # Musetra número de ficheros modificados añadidos etc
 --graph #Añade gráfico ASCII de ramas y uniones 
 --since, --after # Desde : ej: --since=2.weeks
 --until, --before #Hasta
 --author #Autor con la cadena ej: --author=ruben0909
 --committer # Quien hizo el commit coincide con
 --pretty #Modifica el formato de la salida
    oneline
    short
    full 
    fuller
#Ejemplo 
git log --pretty=oneline

# Más info en http://git-scm.com/book/es/Fundamentos-de-Git-Viendo-el-hist%C3%B3rico-de-confirmaciones

Deshaciendo cosas

#Deshacer último commit
git commit --amend
#Deshacer (stage) preparación de un archivo
git reset HEAD name_file
   # *NOTA: Este comando nos aparece cada vez que hacemos un "git status"
   #Por lo que no es necesario aprenderlo 
#Deshaciendo la modificación de un archivo
git checkout -- name_file
   # *NOTA: De nuevo "git status" nos informa de cómo hacer ésto
#Para deshacer varios commint
git rebase -i HEAD~n
#Dónde n es el número

 

En estas dos imágenes se puede ver también el flujo de una forma muy sintetizada:

http://robotics.usc.edu/~ampereir/wordpress/wp-content/uploads/2012/05/GitDataTransportCommands-1024×922.png 

http://www.patrickzahnd.ch/wp-content/uploads/2014/02/git-transport-v1-1024×723.png

Deja un comentario