Desde el directorio raíz de su copia de trabajo acaba de hacer
git checkout A2 -- .
git commit -m 'going back to A2'
Usando git revert
para este propósito sería engorroso, ya que se desea deshacerse de toda una serie de commits y revert
los deshace de a uno por vez.
Usted no quiere git reset
tampoco. Eso simplemente cambiará su puntero de rama master
: no queda ningún registro de la dirección equivocada. También resulta complicado coordinar: dado que la confirmación que modificó master
no es un elemento secundario del puntero de rama del repositorio remoto master
, la inserción fallará, a menos que agregue -f
(forzar) o elimine primero la rama master
y vuelva a crear presionando. Pero luego, todos los que intenten extraer tendrán el historial anterior en su rama local master
, por lo que una vez que origin/master
diverge, git pull
intentará realizar una combinación. Este no es el fin del mundo: pueden salir de esta situación haciendo git rebase --onto origin/master $old_origin_master_commit master
(es decir, rebase sus confirmaciones locales realizadas sobre el antiguo origin/master
en la parte superior del nuevo origin/master
). Pero Git no sabrá hacer esto automáticamente, así que debes coordinar con cada colaborador. En resumen, no hagas eso.
El póster original casi seguro quiere revertir el restablecimiento. Como todos han sacado A3 y A4 de sus repositorios locales, creo que reiniciarlo podría estropear las cosas. –
git-revert solo revertirá una confirmación a la vez y git-reset es una acción incorrecta para los cambios publicados. La respuesta correcta es git-checkout. –
Aristóteles Pagaltzis: tienes razón, lo he eliminado de mi respuesta. – freespace