Publicado el

Mis Comandos Gits

Mis Comandos Gits

En la actualidad tener el poder de un manejador de versiones es indispensable, nos aporta cierta libertad y control a la hora de desarrollar y mantener una aplicación. Por lo general casi todos los desarrollos tiene un manejador de versiones que controla y administra su código fuente.

Aunque he utilizado SVN y GIT, hoy en día el más utilizado sin duda alguna es GIT. Saber manejar GIT es una habilidad indispensable en el mundo del desarrollo de software.

En este post compartiré los comandos GIT que he utilizado en mi quehacer.

– Clonar un repositorio

$>git clone <repository> <directorio>

Por ejemplo:

$>git clone https://github.com/WordPress/WordPress.git UnaWeb

– Ver el estado actual del repositorio para el brach actual

$>git status

– Cambiar de brach

$>git checkout <branch>

Por ejemplo:

$>git checkout develop

– Agregar archivos para un commit

$>git add <archivo_o_directorio>

Por ejemplo:

$>git add hola.txt

En caso que queramos agregar todos los archivos modificados:

$>git add -A

– Crear un commit

git commit -m "<mensaje>"

– Subir un commit (o los commits agregados) al servidor

git push

– Actualizar el repositorio descargándose los últimos commits

git pull

– Ver las diferencias de un archivo dado

git diff <archivo>

– Crear un branch

git branch <nombre>

– Mezclar un branch

En caso que queramos mezclar el branch master con el branch develop, nos ubicamos en el branch master y realizamos la siguiente secuencia de comandos:

git checkout master

git merge develop

git push

En caso que queramos que se mantenga la línea del branch aún mezclado utilizamos los siguientes comandos:

git checkout master

git merge --no-ff develop

git push

Si llegase a existir conflictos en el branch a mezclar en algún archivo, debemos primeramente corregir los conflictos y hacer commit y luego un push.

– Crear una etiqueta, recuerde que se coloca la etiqueta al último commit subido.

git tag <nombre>

– Subir las etiquetas al servidor

git push --tags

– Eliminar una etiqueta local y en el servidor

git tag -d <nombreEtiqueta> //Se elimina localmente
git push origin :refs/tags/<nombreEtiqueta> //Se sincroniza con el servidor

– Sincronizar con el último commit, descartando todos los demás cambios en el repositorio local

git fetch origin && git reset --hard origin/master && git clean -f -d

– Generar archivo zip con mejoras entre dos commits. Algunas veces el ambiente de producción no cuenta con git, por lo tanto debemos generar un archivo zip con las mejoras que deseamos subir, para actualizar el ambiente de producción, en este caso utilizamos el comando:

 Línea del tiempo
  |-> commmit ae04000 (último)
  |
  |-> commit 8c3b9d5 (anterior)

git archive -o ../latest.zip <commit último> $(git diff --name-only <commit anterior>  <commit último>)

Comando Ejemplo:

git archive -o ../latest.zip ae04000 $(git diff --name-only 8c3b9d5 ae04000)

Nota: Recuerde que los cambios del commit anterior no son agregados, si nos necesitamos debemos ir un commit más atrás.
Fuente: stackoverflow-zip-latest-committed-changes-only

– Eliminar el último commit sin afectar los archivos modificados:

git reset HEAD~1

Fuente: aprendegit-como-deshacer-el-ultimo-commit-en-git