Vamos a ver los comandos básicos e esenciales para trabajar con GIT. Como sabemos podemos trabajar desde local osea en nuestra PC o en un hosting remoto, como gratuito tenemos GitHub o BitBucket.

Ahora abrimos la consola de comandos de Git Bash, una ves instalada GIT desde su pagina oficial.

Comandos de configuración:

Para listar la configuración que tenemos en la carpeta del repositorio

git config -l

Para agregar configuración de nuestro repositorio como nombre y email

git config --global user.name "Roger Natividad"
git config --global user.mail antonio1718@gmail.com

Para agregar un alias a un comando

git config --global alias.st status

Primeros pasos con GIT:

Para ver la version de GIT que tenemos instalada:

git --version

Para tener referencia de un comando de GIT:

git help 
git help [comando] 
git [comando] --help

Para crear un repositorio en GIT (nos crea la carpeta oculta .git con todos sus archivos necesarios):

git init

Para agregar al almacen (stage index)

git add [nombreArchivo]
git add .  // agrega todos

Para agregar los archivos y cambios hechos al repositorio

git commit -m "[mensaje de sobre los cambios]"

El estado actual de nuestro repositorio

git status

Mostrar el historial de actividad

git log
git log [Desde [..Hasta]]
git --stat [patter] // búsqueda que cumple el patron
git show commit // muestra los cambios o metadatos enviados en el commit

Limitar el Log

git log -n [numeroVeces]

Resumir el Log

git log --oneline

Numero de archivos modificados y que lineas han sido añadidos

git log --stat

Para saber dentro de un equipo que cambios ha realizado tal miembro

git log --author="Roger"

Añade los nombre de ramas o etiquetas en el log

git log --decorate

Ver y añadir tag

git tag // muestra los tags que existe
git tag v1.0 // creo ese tag

Eliminar los archivos desconocidos del área de trabajo local, hace una limpieza.

git clean

Manejo de archivos y revertir cambios.

Para borrar un archivo

git rm [nombreArchivo]

Para mover o renombrar un archivo

git mv [origen] [destino]

La diferencia de nuestra working directory o carpeta local

git diff
git diff --staged // diferencia en stage index
git diff [rama1] [rama2]

Para regresar a su estado anterior el archivo.

git checkout -- [nombreArchivo]

Excluir un archivo para no ser incluido en el commit, sacarlo del Stage Index

git reset HEAD [nombreArchivo]

Para desaher un commit y conservar el árbol de trabajo local

git reset --soft [HEAD | hash]

Restablece el commit del área de trabajo y imposibilita recuperar los archivos para adelante del commit

git reset --hard [HEAD | hash]

Manejo de Ramas (Branch)

Crear una rama y listar las ramas existentes

git branch [rama] // crea una nueva rama
git branch // lista las ramas
git checkout -b [rama] // crea nueva rama y la posiciona
git checkout [rama] // movernos hacia otra rama
git branch -d [rama] // elimina una rama de manera local
git branch -f [rama] rev // sobrescribir la rama existe y comienza desde la revison
git merge [rama] // guardar y combinar la rama

Manejo de Repositorios Remotos.

Para obtener una copia de un repositorio remoto

git clone [direccionURL]

Nos lista los repositorios remotos disponibles

git remote

Nos lista las conexiones remotas del Fetch y Push

git remote -v

Guarda y descarga desde el repositorio remoto de los últimos cambios alojados

git pull [remote] [rama]

Enviar los cambios hechos a un repositorio remoto

git push [alias] [rama]
git push origin [nombreRama] // enviar desde el origen a la rama
git push -u origin [nombreRama] // Si enviamos por primera vez nuestro repositorio para autenticar con usuario

Elimina una rama de manera remota

git push origin :[rama]

Trae los cambios desde un repositorio remoto pero no fusionado

git fetch + git merge

Mostrar datos de un repositorio remoto

git remote show [urlRepositorio]

Enviar mi repositorio actualizado al remoto

git remote add [URLrepo] // agregar un repositorio local a la lista remoto
git push origin master --tags // sube el tags creado