volver sobrescritos siguientes serán revertir por pendientes los locales ignorar error deshacer checkuot cambios archivos anterior reset repo

reset - sobrescritos - Cómo descartar cambios usando repo



revertir git checkout (6)

repo status me muestra muchos cambios no deseados.

Se duplicaría si ingresara a cada proyecto y utilizara git reset --hard .

¿Hay una manera de restablecer todos los cambios usando repo, algo así como repo reset --hard ?


Este es el comando que uso para este tipo de cosas, muy útil.

repo forall -vc "git reset --hard"

¿Qué significa todo aquí?

El repo forall se ejecutará para todos los repos.

La - v es detallada, por lo que imprimirá la salida del comando

-c "COMMAND TO EXECUTE" es el comando real que desea


Puede usar el comando repo como lo siguiente para revertir todos sus cambios:

repo sync -d

Esto revertirá todos los cambios a la revisión original.

Editado:

El comando anterior está trabajando solo con la versión en ese momento.

El comando de trabajo es:

repo forall -vc "git reset --hard"

El comando y la descripción de las opciones.

  • para todos

Ejecuta el comando de shell dado en cada proyecto.

Opciones (que se pueden usar con el comando forall )

-c : comando y argumentos a ejecutar. El comando se evalúa a través de / bin / sh y cualquier argumento después de pasarlo como parámetros posicionales de shell.

-p : muestra los encabezados del proyecto antes de la salida del comando especificado. Esto se logra vinculando las tuberías a las secuencias estándar, estándar y sterr del comando, y canalizando toda la salida a una secuencia continua que se muestra en una sesión de buscapersonas.

-v : muestra los mensajes que el comando escribe en stderr.

Para obtener más información, consulte el documento de repo


Según la documentation el script de repo solo admite:

  • en eso
  • sincronizar
  • comienzo
  • estado
  • subir

Si los cambios no deseados ya están cargados en el repositorio y quiere que el repositorio vuelva a una revisión anterior, puede usar git reset .

Si desea deshacer los cambios realizados en el lado del cliente que aún no se han cargado en el repositorio, puede revertir git .


Si hay una necesidad de revertir la carpeta de trabajo al estado limpio en el que no tiene modificaciones locales y no hay archivos sin seguimiento (es decir, donde el estado de repo no muestra nada), encontré que estos dos enfoques son útiles para la sincronización de la recompra y los archivos eliminados / modificados

repo forall -c ''git reset --hard ; git clean -fdx''

o

rm -rf * ; repo sync -l // note that .repo is preserved after that

Tenga en cuenta que esto no es equivalente a inicializar un nuevo repositorio local y sincronizar (por ejemplo, se conserva el alijo)

Si no está seguro de lo que está sucediendo, lea la sincronización del repositorio completo y los archivos eliminados / modificados.


Utilizo el comando repo forall con la siguiente sintaxis y me ayuda a restablecer los archivos de seguimiento.

repo forall -p -c ''git checkout -f foo''

donde foo debe ser reemplazado con un nombre de rama legítimo.


#!/bin/bash for gitdir in $(find . -name .git); do pushd $(dirname $gitdir) git reset --hard popd done