bashadvanced113 snippets

Git: El Kit de Emergencia

¿La liaste con el código? Guarda esta guía. Los comandos esenciales para deshacer errores, revertir commits y salvar tu empleo.

Secciones8
1

📊 Estado e Historial

20 snippets

Comandos para verificar el estado del repositorio, explorar el historial de commits y visualizar cambios en archivos o commits específicos.

Estado Corto

Muestra el estado del directorio de trabajo y del área de staging de forma concisa. La flag -s (o --short) muestra la salida en un formato abreviado y fácil de leer, indicando archivos modificados, añadidos o eliminados.

bash
git status -s

Estado para Scripts (Porcelain)

Proporciona una salida de estado formateada para ser fácilmente parseada por scripts. Es una interfaz estable y no diseñada para lectura humana, ideal para automatización.

bash
git status --porcelain

Incluir Archivos Ignorados en el Estado

Incluye archivos ignorados (listados en el .gitignore) en la salida del estado, mostrándolos en la sección "Untracked files". Útil para verificar si las reglas de ignorar están funcionando como se esperaba.

bash
git status --ignored

Información de la Branch en el Status

Muestra información adicional sobre la branch actual, como el nombre de la branch, si está por delante o por detrás de su upstream, y el hash del commit actual.

bash
git status --branch

Mostrar Stashes en el Status

Muestra la cantidad de stashes que tienes actualmente. Útil para recordar si hay cambios guardados que necesitan ser aplicados o eliminados.

bash
git status --show-stash

Log Completo del Historial

Proporciona una visualización completa y compacta del historial de commits. `--oneline` muestra cada commit en una línea, `--graph` dibuja un grafo ASCII del historial, `--all` incluye branches remotas y tags, y `--decorate` muestra los nombres de las branches y tags.

bash
git log --oneline --graph --all --decorate

Log con Estadísticas

Muestra estadísticas de cada commit, indicando qué archivos fueron modificados y el número de líneas añadidas/eliminadas. Útil para tener una visión rápida del impacto de cada commit.

bash
git log --stat

Log con Diff Completo (Patch)

Muestra el diff completo (patch) para cada commit, exhibiendo los cambios exactos línea por línea. Esencial para revisar el contenido de cada alteración.

bash
git log --patch

Log por Período

Filtra el historial de commits para mostrar solo aquellos realizados dentro de un período específico. Se pueden usar formatos como "2 weeks ago", "yesterday", "2023-01-01".

bash
git log --since="2 weeks ago"

Log por Autor

Filtra o histórico para exibir apenas os commits feitos por um autor específico. O nome do autor deve corresponder ao configurado no Git.

bash
git log --author="nome"

Log por Mensaje de Commit

Filtra el historial de commits por una palabra clave o patrón regex en el mensaje del commit. Útil para encontrar commits relacionados con correcciones de bugs o funcionalidades específicas.

bash
git log --grep="fix"

Log por Cambio de Código (Pickaxe)

Busca commits que introdujeron o eliminaron una string específica en el código (también conocido como opción "pickaxe"). Es potente para rastrear dónde una función o variable fue cambiada por primera vez.

bash
git log -S "função"

Log Siguiendo Renombres de Archivo

Muestra el historial de un archivo específico, siguiendo su historial a través de renombres. Garantiza que veas todos los cambios en el archivo, incluso si su nombre ha cambiado.

bash
git log --follow arquivo.txt

Log Coloreado y Formateado

Presenta un log de commits altamente formateado y coloreado, mostrando hash, branches/tags, mensaje, fecha relativa y autor. Personalizable para una mejor legibilidad visual.

bash
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'

Log Compacto con Grafo

Una visualización compacta y decorada del historial, mostrando el grafo de branches y tags. Similar al log completo, pero sin incluir todas las referencias remotas por defecto.

bash
git log --oneline --decorate --graph

Log en Orden Cronológico Inverso

Muestra el historial de commits en orden cronológico inverso, es decir, del commit más antiguo al más reciente. Útil para ver la evolución de un proyecto.

bash
git log --reverse

Visualizar Último Commit

Muestra el contenido del último commit en la branch actual, incluyendo el diff. Es una forma rápida de revisar lo que se ha commiteado más recientemente.

bash
git show HEAD

Visualizar Commit Específico (HEAD~2)

Muestra el contenido del commit que está dos commits antes del HEAD. Se puede usar cualquier referencia de commit (hash, tag, branch, HEAD~n).

bash
git show HEAD~2

Visualizar Solo Nombres de Archivos Modificados

Muestra solo los nombres de los archivos que fueron modificados en el commit especificado, sin mostrar el diff completo.

bash
git show --name-only HEAD

Visualizar Commit con Estadísticas

Muestra estadísticas de modificación para el commit especificado, mostrando qué archivos fueron alterados y el número de líneas añadidas/eliminadas.

bash
git show --stat HEAD
2

🌿 Branches Avanzadas

15 snippets

Comandos esenciales para crear, listar, gestionar y eliminar branches, tanto locales como remotas.

Crear y Cambiar a Nueva Rama (Checkout)

Crea una nueva rama con el nombre especificado (ej: `feature/nueva-funcionalidad`) e inmediatamente cambia a ella. Es un atajo para `git branch <nombre>` seguido de `git checkout <nombre>`.

bash
git checkout -b feature/nova-funcionalidade

Crear y Cambiar a Nueva Rama (Switch)

Comando moderno y más intuitivo para crear una nueva rama y cambiar a ella. Es la alternativa recomendada a `git checkout -b` para este propósito.

bash
git switch -c feature/nova-funcionalidade

Listar Todas las Ramas (Local y Remota)

Lista todas las ramas, incluyendo las locales y las remotas. Las ramas remotas están prefijadas con el nombre del remote (ej: `remotes/origin/main`).

bash
git branch -a

Listar Solo Branches Remotas

Lista solo las branches remotas. Útil para ver qué branches existen en los repositorios remotos sin contaminar la salida con las locales.

bash
git branch -r

Listar Branches con Último Commit

Lista las branches locales con información adicional, como el último commit de cada branch y el mensaje del commit. Ayuda a tener una visión rápida del estado de cada branch.

bash
git branch -v

Listar Branches Mergeadas

Lista las branches que ya fueron totalmente mergeadas en la branch actual. Generalmente, son branches que pueden ser eliminadas con seguridad.

bash
git branch --merged

Listar Branches No Mergeadas

Lista las branches que aún no han sido mergeadas en la branch actual. Estas branches contienen trabajo que aún no ha sido integrado y no deben ser eliminadas sin cuidado.

bash
git branch --no-merged

Eliminar Branch Local (Seguro)

Elimina la branch local especificada (ej: `feature-branch`). Este es un "delete seguro" que fallará si la branch contiene commits no mergeados en la branch actual.

bash
git branch -d feature-branch

Forzar Eliminación de Branch Local

Fuerza la eliminación de la branch local especificada, incluso si contiene commits no mergeados. Usa con cautela, ya que puede resultar en pérdida de trabajo.

bash
git branch -D feature-branch

Eliminar Branch Remota

Elimina una branch del repositorio remoto (ej: `origin/feature-branch`). Es el comando para eliminar branches remotas que ya no son necesarias.

bash
git push origin --delete feature-branch

Renombrar Branch Actual

Renombra la branch local `old-name` a `new-name`. Si `old-name` se omite, renombra la branch actual.

bash
git branch -m old-name new-name

Forzar Renombrado de Branch

Fuerza el renombrado de una branch, incluso si `new-name` ya existe. Usa con cuidado para evitar sobrescribir branches existentes.

bash
git branch -M old-name new-name

Mostrar Branch Actual

Muestra el nombre de la branch actual en la que estás trabajando. Útil para scripts o para confirmar rápidamente la branch.

bash
git branch --show-current

Branches que Contienen un Commit Específico

Lista todas las branches que contienen el commit especificado (ej: `abc123`). Útil para rastrear dónde se integró un commit específico.

bash
git branch --contains abc123

Ordenar Branches por Fecha del Último Commit

Lista las branches locales ordenadas por la fecha del último commit, del más reciente al más antiguo. La flag `-` invierte el orden.

bash
git branch --sort=-committerdate
3

🔄 Merge y Rebase

13 snippets

Comandos para integrar cambios entre branches mediante merge tradicional o reorganizando el historial con rebase. Incluye cherry-pick.

Merge Normal

Integra los cambios de la `feature-branch` en la rama actual. Si es posible, realiza un fast-forward merge; de lo contrario, crea un merge commit.

bash
git merge feature-branch

Merge Sin Fast-Forward

Fuerza la creación de un merge commit, incluso si un fast-forward merge fuera posible. Esto preserva el historial de ramas, mostrando explícitamente dónde se integró la feature.

bash
git merge --no-ff feature-branch

Merge con Squash

Aplica los cambios de la `feature-branch` en la rama actual como un único commit, sin registrar la `feature-branch` en el historial. Los commits de la `feature-branch` son "aplastados" en un único commit en la rama de destino.

bash
git merge --squash feature-branch

Rebase Interactivo (Últimos N Commits)

Inicia un rebase interactivo en los últimos 3 commits a partir del HEAD. Permite reordenar, editar, aplastar (squash) o dividir commits, y eliminar commits. Abre un editor de texto con las opciones.

bash
git rebase -i HEAD~3

Rebase Interactivo (Desde una Branch)

Inicia un rebase interactivo de todos los commits en la branch actual que no están en la branch `main`. Útil para limpiar el historial antes de hacer un merge en la `main`.

bash
git rebase -i main

Continuar Rebase

Continúa el proceso de rebase después de resolver conflictos de merge o después de editar un commit durante un rebase interactivo.

bash
git rebase --continue

Cancelar Rebase

Cancela el rebase en curso y devuelve la branch al estado en que estaba antes del inicio del rebase. Útil si decides no continuar o si encuentras problemas insolubles.

bash
git rebase --abort

Cherry-pick de Commit Específico

Aplica los cambios introducidos por un commit específico (ej: `abc123`) en la branch actual, creando un nuevo commit con esos cambios. Útil para portar correcciones o funcionalidades puntuales.

bash
git cherry-pick abc123

Cherry-pick de Rango de Commits

Aplica un rango de commits (del `abc123` exclusivo hasta el `def456` inclusivo) en la branch actual. Útil para portar múltiples cambios a la vez.

bash
git cherry-pick abc123..def456

Cherry-pick Sin Crear Commit

Aplica los cambios del commit `abc123` en el directorio de trabajo y área de staging, pero sin crear un nuevo commit. Permite revisar y ajustar los cambios antes de commitarlos.

bash
git cherry-pick --no-commit abc123

Cherry-pick con Crédito de Origen

Aplica el commit `abc123` y añade una línea "cherry-picked from commit abc123" al mensaje del nuevo commit, indicando el origen.

bash
git cherry-pick -x abc123

Cherry-pick con Sign-off

Aplica el commit `abc123` y añade una línea "Signed-off-by: Your Name <your.email@example.com>" al mensaje del nuevo commit, indicando que certificas el origen del cambio.

bash
git cherry-pick --signoff abc123

Cancelar Cherry-pick

Cancela un cherry-pick en curso y devuelve la branch al estado anterior. Útil si hay conflictos o si el cherry-pick ya no es deseado.

bash
git cherry-pick --abort
4

🔍 Búsqueda e Investigación

16 snippets

Herramientas para buscar dentro del código fuente, investigar historial de modificaciones y usar git bisect para identificar commits problemáticos.

Buscar String en el Working Tree

Busca una string o patrón regex en los archivos rastreados por Git en el directorio de trabajo. Es como un `grep` tradicional, pero optimizado para repositorios Git.

bash
git grep "função"

Buscar String en Commit Específico

Busca una string o patrón regex en el código en un commit específico (ej: `HEAD~5`). Útil para encontrar dónde existía una string en un punto anterior del historial.

bash
git grep "função" HEAD~5

Buscar String con Números de Línea

Busca una string y muestra los números de línea donde se encontró la coincidencia. Ayuda a localizar rápidamente la ocurrencia en el archivo.

bash
git grep -n "função"

Buscar String Case Insensitive

Realiza una búsqueda case insensitive, ignorando la diferencia entre letras mayúsculas y minúsculas al buscar la string.

bash
git grep -i "função"

Blame: Quién Modificó Cada Línea

Muestra el historial de revisiones línea por línea para un archivo específico. Para cada línea, exhibe el commit que la modificó por última vez, el autor y la fecha. Útil para identificar quién y cuándo alteró una parte del código.

bash
git blame arquivo.txt

Blame de Líneas Específicas

Restringe la salida de `git blame` a un intervalo específico de líneas (de la línea 10 a la 20, inclusive) de un archivo. Útil para enfocarse en una sección problemática.

bash
git blame -L 10,20 arquivo.txt

Historial de Archivo con Patches

Muestra el historial de commits que afectaron el `archivo.txt`, incluyendo el patch (diff) completo de cada alteración. Permite ver exactamente cómo el archivo evolucionó.

bash
git log -p arquivo.txt

Historial de Archivo Siguiendo Renombramientos

Muestra el historial de un archivo específico, siguiendo su historial a través de renombramientos. Garantiza que veas todos los cambios en el archivo, incluso si su nombre ha cambiado.

bash
git log --follow arquivo.txt

Iniciar Bisect para Bugs

Inicia una sesión de `git bisect`, que es una herramienta para encontrar el commit que introdujo un bug usando una búsqueda binaria en el historial.

bash
git bisect start

Marcar Commit Actual como "Malo"

Marca el commit actual (HEAD) como "malo", indicando que el bug está presente en este punto.

bash
git bisect bad HEAD

Marcar Versión Conocida como "Buena"

Marca un commit conocido (ej: `v1.0.0`) como "bueno", indicando que el bug no estaba presente en este punto. Git entonces elige un commit intermedio para que pruebes.

bash
git bisect good v1.0.0

Automatizar Bisect con Pruebas

Automatiza el proceso de bisect ejecutando un script o comando (ej: `npm test`) en cada commit. El script debe devolver 0 para "bueno" y un código de error (1-127) para "malo".

bash
git bisect run npm test

Finalizar Bisect

Finaliza la sesión de `git bisect` y devuelve la branch al commit en el que estaba antes de iniciar el bisect.

bash
git bisect reset

Visualizar Grafo del Bisect

Abre una interfaz gráfica (si está configurada) para visualizar el grafo de commits y el progreso del bisect.

bash
git bisect visualize

Mostrar Log del Bisect

Muestra el log de todos los comandos `git bisect` ejecutados en la sesión actual, útil para revisar el proceso.

bash
git bisect log

Repetir Bisect desde un Log

Repite una sesión de bisect a partir de un archivo de log previamente guardado, permitiendo recrear el proceso de depuración.

bash
git bisect replay arquivo.log
5

🏷️ Tags y Releases

13 snippets

Comandos para crear, listar y gestionar tags — referencias inmutables a puntos específicos del historial, usadas para marcar versiones.

Crear Etiqueta Ligera (Lightweight)

Crea una etiqueta ligera (lightweight tag) con el nombre `v1.0.0` en el commit actual. Las etiquetas ligeras son solo un puntero a un commit.

bash
git tag v1.0.0

Crear Etiqueta Anotada

Crea una etiqueta anotada (annotated tag) con el nombre `v1.0.0` y un mensaje descriptivo. Las etiquetas anotadas son objetos Git completos, que contienen el nombre del etiquetador, e-mail, fecha y mensaje, y se recomiendan para releases.

bash
git tag -a v1.0.0 -m "Release 1.0.0"

Crear Etiqueta Anotada en Commit Específico

Crea una etiqueta anotada `v1.0.0` en un commit específico (ej: `abc123`), en lugar del HEAD. Útil para marcar commits pasados.

bash
git tag -a v1.0.0 abc123 -m "Tag commit específico"

Listar Todas las Tags

Lista todas las tags en el repositorio local en orden alfabético.

bash
git tag

Filtrar Tags

Lista tags que corresponden a un patrón específico (ej: todas las tags que comienzan con "v1.").

bash
git tag -l "v1.*"

Ver Detalles de la Tag

Muestra los detalles de una tag específica, incluyendo el mensaje de la tag (si es anotada) y el commit al cual apunta.

bash
git show v1.0.0

Eliminar Tag Local

Elimina la tag `v1.0.0` del repositorio local. Esto no elimina la tag de repositorios remotos.

bash
git tag -d v1.0.0

Eliminar Tag Remota

Elimina la tag `v1.0.0` del repositorio remoto `origin`. Es necesario para eliminar tags publicadas.

bash
git push origin --delete v1.0.0

Enviar Tag Específica a Remote

Envía una tag específica (`v1.0.0`) al repositorio remoto `origin`. Las tags no se envían automáticamente con `git push`.

bash
git push origin v1.0.0

Enviar Todas las Tags al Remoto

Envía todas las tags locales al repositorio remoto `origin`. Útil para publicar varias tags a la vez.

bash
git push origin --tags

Verificar Firma de Tag

Verifica la firma GPG de una tag anotada. Requiere que la tag haya sido firmada y que la clave GPG del firmante esté disponible.

bash
git tag -v v1.0.0

Crear Tag Firmada

Crea una tag anotada y firmada con GPG. La firma garantiza la autenticidad e integridad de la tag.

bash
git tag -s v1.0.0 -m "Release"

Forzar Creación/Actualización de Tag

Fuerza la creación o actualización de una tag existente. Usa con cautela, ya que puede sobrescribir tags importantes.

bash
git tag -f v1.0.0
6

📦 Stash Avanzado

13 snippets

Gestión del stash de Git, un área temporal para guardar cambios no commiteados cuando necesitas cambiar de branch.

Stash Básico

Guarda los cambios no commitados (modificaciones en el directorio de trabajo y archivos staged) en una pila de stashes, revirtiendo el directorio de trabajo al estado del último commit. Los archivos no rastreados no se incluyen por defecto.

bash
git stash

Stash con Mensaje

Guarda los cambios con un mensaje descriptivo. El mensaje ayuda a identificar el contenido del stash posteriormente, especialmente cuando hay varios stashes.

bash
git stash push -m "WIP: feature X"

Stash de Archivo Específico

Guarda solo los cambios de un archivo específico en el stash, dejando otros archivos inalterados. El `--` es necesario para distinguir la ruta del archivo de otras opciones.

bash
git stash push -- arquivo.txt

Stash Incluyendo Archivos No Rastreados

Guarda los cambios, incluyendo también los archivos no rastreados (untracked files) en el stash. Útil para guardar todo el estado del directorio de trabajo.

bash
git stash push --include-untracked

Listar Stashes

Lista todos los stashes actualmente almacenados, mostrando una breve descripción y el índice de cada uno (ej: `stash@{0}`).

bash
git stash list

Ver Cambios de un Stash

Muestra un resumen de los cambios contenidos en un stash específico (ej: `stash@{0}`). Muestra qué archivos fueron modificados.

bash
git stash show stash@{0}

Ver Patch Completo de un Stash

Muestra el patch completo (diff) de un stash específico, exhibiendo los cambios línea por línea. Esencial para revisar el contenido antes de aplicar.

bash
git stash show -p stash@{0}

Aplicar Stash Sin Eliminar

Aplica los cambios de un stash específico en el directorio de trabajo, pero mantiene el stash en la pila. Útil si quieres aplicar el mismo stash en varias branches.

bash
git stash apply stash@{0}

Aplicar y Eliminar Stash

Aplica los cambios de un stash específico en el directorio de trabajo y, a continuación, elimina el stash de la pila. Es el comando más común para aplicar y limpiar stashes.

bash
git stash pop stash@{0}

Eliminar Stash Específico

Elimina un stash específico de la pila sin aplicar sus cambios. Útil para descartar stashes que ya no son necesarios.

bash
git stash drop stash@{0}

Limpiar Todos los Stashes

Elimina todos los stashes de la pila. Usa con extrema precaución, ya que esta acción es irreversible.

bash
git stash clear

Crear Branch a Partir de Stash

Crea una nueva branch a partir del commit donde se creó el stash, aplica el stash en ella y, a continuación, elimina el stash de la pila. Útil para continuar el trabajo de un stash en una nueva branch.

bash
git stash branch nova-branch stash@{0}

Stash Solo Cambios No Staged

Guarda los cambios no staged en el stash, pero mantiene los cambios que ya estaban en el área de staging. Útil para commitear solo parte de los cambios y guardar el resto.

bash
git stash --keep-index
7

↩️ Reset y Restore

9 snippets

Comandos para deshacer cambios, revertir el historial de commits y recuperar archivos o estados anteriores. Incluye git reset y git restore.

Reset Soft (Deshace Commit, Mantiene Staged)

Deshace el último commit, moviendo el HEAD al commit anterior, pero mantiene los cambios del commit deshecho en el área de staging. El directorio de trabajo permanece inalterado.

bash
git reset --soft HEAD~1

Reset Mixed (Deshace Commit y Staging)

Deshace el último commit y mueve los cambios del commit deshecho al directorio de trabajo (no staged). Es el comportamiento predeterminado de `git reset` si no se especifica ninguna flag. El área de staging se limpia.

bash
git reset --mixed HEAD~1

Reset Hard (¡BORRA TODO! ¡Cuidado!)

Deshace el último commit, descarta todos los cambios del commit deshecho del directorio de trabajo y del área de staging. Esta acción es irreversible y puede resultar en pérdida de trabajo no commitado. ¡Usa con extrema precaución!

bash
git reset --hard HEAD~1

Restaurar Archivo en el Working Tree

Descarta los cambios en `archivo.txt` en el directorio de trabajo, restaurándolo al estado del último commit. Es una alternativa más segura e intuitiva a `git checkout -- archivo.txt`.

bash
git restore arquivo.txt

Unstage Archivo (Remover del Staging)

Remueve el `archivo.txt` del área de staging, moviendo sus cambios de vuelta al directorio de trabajo (unstage). El archivo en el directorio de trabajo permanece inalterado.

bash
git restore --staged arquivo.txt

Restaurar Archivo de Commit Específico

Restaura el `archivo.txt` en el directorio de trabajo y en el área de staging al estado en que estaba en un commit específico (ej: `HEAD~1`). Útil para recuperar versiones antiguas de archivos.

bash
git restore --source=HEAD~1 arquivo.txt

Ver Historial de Referencias (Reflog)

Muestra un log de todas las acciones que modificaron el HEAD del repositorio local. Es un historial de "dónde estuvo el HEAD", permitiendo recuperar commits que parecen haberse perdido después de resets o rebases.

bash
git reflog

Historial de Reflog de Branch

Muestra el reflog para una branch específica (ej: `main`), indicando todas las veces que la referencia `main` fue actualizada.

bash
git reflog show main

Volver Usando Reflog

Vuelve el HEAD (y la branch actual) a un estado anterior registrado en el reflog (en este caso, el segundo estado más reciente). Es la principal forma de recuperar commits después de un `git reset --hard` accidental.

bash
git reset --hard HEAD@{2}
8

☁️ Remote y Colaboración

14 snippets

Comandos avanzados para gestionar repositorios remotos, sincronizar branches y colaborar efectivamente en proyectos Git.

Listar Remotes (Verbose)

Lista los repositorios remotos configurados para el proyecto, mostrando sus nombres y URLs (verbose). Útil para verificar de dónde estás trayendo y a dónde estás enviando.

bash
git remote -v

Añadir Nuevo Remote

Añade un nuevo repositorio remoto con el nombre `upstream` y la URL especificada. Común para configurar un remote para el repositorio original en un fork.

bash
git remote add upstream https://...

Cambiar URL de Remote

Cambia la URL de un repositorio remoto existente (ej: `origin`). Útil para actualizar la ubicación de un repositorio o cambiar entre SSH y HTTPS.

bash
git remote set-url origin https://...

Remover Remote

Elimina un repositorio remoto con el nombre `upstream` de la configuración local. Esto no afecta al repositorio remoto en sí.

bash
git remote remove upstream

Fetch de Todos los Remotes

Descarga objetos y referencias de todos los repositorios remotos configurados. No integra los cambios en el directorio de trabajo, solo actualiza las referencias remotas locales.

bash
git fetch --all

Fetch con Prune (Remover Refs Eliminadas)

Elimina las referencias locales a branches remotas que fueron eliminadas en el repositorio remoto. Ayuda a mantener la lista de branches remotas limpia y actualizada.

bash
git fetch --prune

Pull con Rebase

Descarga los cambios del repositorio remoto y, a continuación, aplica tus cambios locales sobre ellos usando rebase. Esto evita commits de merge innecesarios y mantiene un historial lineal.

bash
git pull --rebase

Pull Solo Fast-Forward

Descarga los cambios del repositorio remoto e intenta realizar un fast-forward merge. Si un fast-forward no es posible (es decir, hay commits locales que no son ancestros del remote), el comando falla, requiriendo un merge manual o rebase.

bash
git pull --ff-only

Push y Configurar Upstream

Envía la `feature-branch` al repositorio remoto `origin` y la configura como la branch de upstream. Esto permite usar `git pull` y `git push` sin especificar el remote y la branch posteriormente.

bash
git push -u origin feature-branch

Force Push Seguro (with-lease)

Envía los cambios al repositorio remoto, forzando la sobrescritura del historial, pero con una salvaguarda. Solo funciona si la branch remota no ha sido actualizada por otra persona desde tu último fetch, previniendo sobrescrituras accidentales de trabajo ajeno.

bash
git push --force-with-lease

Eliminar Branch Remota (Push)

Elimina la `feature-branch` del repositorio remoto `origin`. El `:` antes del nombre de la branch local indica que estás enviando "nada" a la branch remota, eliminándola efectivamente.

bash
git push origin :feature-branch

Push de Todas las Branches

Envía todas las branches locales al repositorio remoto `origin`. Útil para asegurar que todas tus branches estén sincronizadas con el remoto.

bash
git push --all origin

Reflejar Repositorio en el Remoto

Refleja el repositorio local en el repositorio remoto `origin`. Esto significa que todas las branches, tags y referencias del local serán replicadas en el remoto, incluyendo la eliminación de cualquier cosa que no esté en el local. Usa con extrema precaución, ya que es una operación destructiva.

bash
git push --mirror origin

Push con Tags y Follow-Tags

Envía todas las tags locales al repositorio remoto, y también envía cualquier commit que sea referenciado por esas tags (si aún no están en el remote). `--follow-tags` garantiza que las tags anotadas que apuntan a commits que aún no han sido enviados también sean enviadas.

bash
git push --tags --follow-tags

Recibe los ultimos articulos en tu correo.

Follow Us: