Estados de GIT

Existen tres esdados en GIT:

  1. Working Directory
  2. Staging Area
  3. Git repository

Comandos Bash con GIT

Los siguientes comandos pueden ser utilzados en la consola de GIT

GIT INIT
Inicializa un proyecto de GIT. SI se coloca un nombre despues de INIT se creara un nuevo repositorio con el nombre propuesto
GIT COMMIT -M "Mensaje a enviar":
Envia un commit para almacenar en el repositorio
GIT COMMIT --AMEND:
Agrega el contenido a un commit enviado con anterioridad
Se puede agregar un -m "mensaje" el cual remplazara el mesaje del commit anterior
GIT RM --CACHED [ARCHIVO_NAME]
Se quitara el arhivo del Stating Area sin eliminar por completo el archivo
GIT RM -F [NOMBRE_ARCHIVO]
Elimina definitivamente el archivo

USO DE ETIQUETAS

Sirve para etiquetar los cambios o versiones que ocurrieron. Es decir, despues de un commit. Existe de dos tipos las ligeras y anotadas

GIT TAG -a [version ej: 1.0] -m "DESCRIPCION"
Se agrega una etiqueta al estado en el que se encuentra el proyecto

otros comandos utiles:

  1. git tag -l: lista los tag creados
  2. git tag -d [tag]: borra el tag existente

GIT LOG

A través de GIT LOG se puede ver multiple informacion sobre los secesos ocurridos en GiT

GIT LOG --ONELINE
Muestra solo los titulos de los commit.
GIT LOG --GRAPH
Muestra el grafico de los cambios ocurridos en las diferentes ramas

Se puede crear log personalizados mediante la documentacion de GIT LOG

SUPERLOG: git config --global alias.superlog "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"

Comparar con DIFF

Se puede comparar entre commit diferentes a traves del uso de GIT DIFF. La sintaxis es la siguientes: git diff [nombre_log, num_commit o hash] [nombre_log, num_commit o hash]

RESET EN GIT

Existe tres tipos de reset:

GIT RESET --SOFT:
Se debera establecer DESDE que commit se va a eliminar el ultimo commit. Pero la informacion se mantiene en el stage, es decir, que solo se borro el commit mas no lo que se encuentra en el repositorio local. La estructura es siguiente: git reset --soft [hash]
GIT RESET --MIXED
Este comando borra la informacion subida al stating y del commit. Por lo tanto la informacion permace pero sin ser alamcenada en el repositorio local ni global. La informacion queda en el working area.
GIT RESET --HARD
Este comando elimina todo lo registrado en las tres fases de almacenamiento. Excepto lo que no se manipulo con el git
NOTA: Se puede recuperar lo eliminado. Pero para eso se necesita HASH de lo que se desea recuperar. Se recomienda almacenar los LOG

CONFIGURAR OTRO EDITOR PARA GIT

La configuracion de otro editor sera util para facilir la edicion de texto. El comando es:

git congif --global core.edit "[nombre del editor] --wait" -> Wairt se utiliza para esperar hasta que el editor guarde los cambios

PARA WIN: git config --global core.editor"C:/Users/_USERNAME_/AppData/Local/atom/app-_VERSION_/atom.exe"

RAMAS

Git BRACH

MOVIENDONOS ENTRE REAMAS

Para movernos entre ramas se emplea el comando git checkout [nombre de la ram]. Ademas se puede mover a un commit sin alterar el codigo escrito: git checkout [hash o nombre del commit]

SE PUEDE CREAR UNA RAMA A PARTIR DE UNA VERSION ANTERIRO mediante el uso de checkout [commit]. Para lo cual se necesita git checkout -b [nombre de la rama]

UNIR RAMAS

Para unir las ramas se debe hacer un merge. Para lo cual se pude realizar a traves del siguiente comando: git merge [nombre de la rama], vale recordar que se debe posicionar en la rama que a la que se le va a agregar los cambios de la otra rama

GIT REBASE

Realiza la misma funcion que MERGE a diferencia que no crea ramas adicionales cuando existe conflictos. Es recomendable solo usar de manera local ya que traeria conflcitos al utilzar de manera online.. debe estar en la que se va a realizar la union.

Se puede decir que se trata de reorganizar los commit. Con el comando git rebase, puedes coger todos los cambios confirmados en una rama, y reaplicarlos sobre otra.

comadno: git rebase rama_a_unir

ver mas info

GUARDAR CAMBIOS TEMPORALES

Sirve para guardar temporalmente los cambios antes de hacer un merge. Despues de guardar se puede mover entre ramas sin problemas. Se debe aplicar el stash para continuar con la programacion

MOVIENDO COMMIT ENTRE RAMAS

Para mover uncommit entre ramas es necesario el comando: git commit cherry-pick [hash del commit]. Recuerde que para esto es necesario copiar el hash que se encuetra en la rama que va a mover el has despues moverse a la rama donde quiere el commit y ejecutar el comando

GITHUB

Lenguaje de marcado: