Configurar herramientas

Configurar la información del usuario para todos los respositorios locales

  • Establecer el nombre que estará asociado a tus commits :

    $ git config --global user.name "[name]"

  • Establecer el e-mail que estará asociado a sus commits :

    $ git config --global user.email "[email address]"

Crear repositorios

Inicializar un nuevo repositorio u obtener uno de una URL existente

  • Crea un nuevo repositorio local con el nombre especificado :

    $ git init [project-name]

  • Descarga un proyecto y toda su historial de versiones :

    $ git clone [url]

Refactorización de archivos

Reubica y retira los archivos de los cuales se tiene una versión

  • Borra el archivo del directorio activo y lo pone en el área de espera en un estado de eliminación :

    $ git rm [file]

  • Retira el archivo del historial de control de versiones, pero preserva el archivo a nivel local :

    $ git rm --cached [file]

  • Cambia el nombre del archivo y lo prepara para ser guardado :

    $ git mv [file-original] [file-renamed]

Suprimir el seguimiento de cambios

Excluye los archivos temporales y las rutas

Un archivo de texto llamado:

.gitignore

suprime la creación accidental de versiones para archivos y rutas que concuerdan con los patrones especificados

*.log

build/

temp-*

Enumera todos los archivos ignorados en este proyecto

:

$ git ls-files --others --ignored --exclude-standard

Guardar fragmentos

Almacena y restaura cambios incompletos

  • Almacena temporalmente todos los archivos modificados de los cuales se tiene al menos una versión guardada :

    $ git stash

  • Restaura los archivos guardados más recientemente:

    $ git stash pop

  • Enumera todos los grupos de cambios que estan guardados temporalmente:

    $ git stash list

  • Elimina el grupo de cambios más reciente que se encuentra guardado temporalmente:

    $ git stash dro

Efectuar cambios

Revisa cambios y crea un commit

  • Enumera todos los archivos nuevos o modificados de los cuales se van a guardar cambios:

    $ git status

  • Muestra las diferencias entre archivos que no se han enviado aún al área de espera:

    $ git diff

  • Guarda el estado del archivo en preparación para realizar un commit:

    $ git add [file]

  • Muestra las diferencias del archivo entre el área de espera y la última versión del archivo:

    $ git diff --staged

  • Mueve el archivo del área de espera, pero preserva su contenido:

    $ git reset [file]

  • Registra los cambios del archivo permanentemente en el historial de versiones:

    $ git commit -m"[descriptive message]"

Cambios grupales

Nombra una serie de commits y combina esfuerzos ya completados

  • Enumera todas las ramas en el repositorio actual:

    $ git branch

  • Crea una nueva rama:

    $ git branch [branch-name]

  • Cambia a la rama especificada y actualiza el directorio activo:

    $ git switch -c [branch-name]

  • Combina el historial de la rama especificada con la rama actual:

    $ git merge [branch-name]

  • Borra la rama especificada:

    $ git branch -d [branch-name]

Repasar historial

Navega e inspecciona la evolución de los archivos de proyecto

  • Enumera el historial de versiones para la rama actual:

    $ git log

  • Enumera el historial de versiones para el archivo, incluidos los cambios de nombre:

    $ git log --follow [file]

  • Muestra las diferencias de contenido entre dos ramas:

    $ git diff [first-branch]...[second-branch]

  • Produce metadatos y cambios de contenido del commit especificado:

    $ git show [commit]

Rehacer commits

Borra errores y elabora un historial de reemplazo

  • Deshace todos los commits después de [commit], preservando los cambios localmente:

    $ git reset [commit]

  • Desecha todo el historial y regresa al commit especificado:

    $ git reset --hard [commit]

Sincronizar cambios

Registrar un marcador para un repositorio e intercambiar historial de versiones

  • Descarga todo el historial del marcador del repositorio:

    $ git fetch [bookmark]

  • Combina la rama del marcador con la rama local actual:

    $ git merge [bookmark]/[branch]

  • Sube todos los commits de la rama local a GitHub:

    $ git push [alias] [branch]

  • Descarga el historial del marcador e incorpora cambios:

    $ git pull