ver tipos tag modificados etiquetas crear archivos git push commit

tipos - git ver archivos modificados



Cambio del mensaje de confirmación de git después de la inserción(dado que nadie extrajo el control remoto) (11)

Historia cambiante

Si es la confirmación más reciente, simplemente puede hacer esto:

git commit --amend

Esto abre el editor con el último mensaje de confirmación y le permite editar el mensaje. (Puede usar -m si desea borrar el mensaje anterior y usar uno nuevo).

Emprendedor

Y luego, cuando empujas, haz esto:

git push --force-with-lease <repository> <branch>

O puedes usar "+":

git push <repository> +<branch>

O puedes usar --force :

git push --force <repository> <branch>

Tenga cuidado al usar estos comandos.

  • Si alguien más introdujo cambios en la misma rama, es probable que desee evitar destruirlos. La opción --force-with-lease es la más segura, porque abortará si hay algún cambio en sentido ascendente (

  • Si no especifica la rama explícitamente, Git usará la configuración de inserción predeterminada. Si su configuración de inserción predeterminada es "coincidente", entonces puede destruir los cambios en varias ramas al mismo tiempo.

Tirando / recogiendo después

Cualquier persona que ya haya sacado recibirá un mensaje de error y deberá actualizar (asumiendo que ellos mismos no están haciendo ningún cambio) haciendo algo como esto:

git fetch origin git reset --hard origin/master # Loses local commits

Tenga cuidado al usar reset --hard . Si tiene cambios en la rama, esos cambios serán destruidos.

Una nota sobre la modificación de la historia.

Los datos destruidos son realmente solo el antiguo mensaje de confirmación, pero --force no lo sabe, y felizmente también eliminará otros datos. Así que piense en " --force " como "Quiero destruir datos, y sé con seguridad qué datos se están destruyendo". Pero cuando se confirman los datos destruidos, a menudo se pueden recuperar las confirmaciones antiguas del reflog; en realidad, los datos quedan huérfanos en lugar de destruidos (aunque las confirmaciones huérfanas se eliminan periódicamente).

Si no crees que estás destruyendo datos, aléjate de ... --force ... pueden pasar cosas malas .

Esta es la razón por la que --force-with-lease es algo más seguro.

He hecho un git commit y un push posterior. Me gustaría cambiar el mensaje de confirmación. Si lo comprendo correctamente, esto no es recomendable porque alguien podría haberlo retirado del repositorio remoto antes de realizar dichos cambios. ¿Y si sé que nadie ha tirado?

¿Hay alguna forma de hacer esto?


Comando 1 .

git commit --amend -m "New and correct message"

Entonces,

Comando 2 .

git push origin --force


Debe tenerse en cuenta que si utiliza push --force con refs mutiple, TODOS serán modificados como resultado. Asegúrate de prestar atención a dónde está configurado tu repositorio git para presionar. Afortunadamente, hay una manera de salvaguardar el proceso ligeramente, especificando una única rama para actualizar. Lee de las páginas del manual de git:

Tenga en cuenta que --force se aplica a todos los refs que se empujan, por lo tanto, usarlo con push.default configurado para hacer coincidir o con múltiples destinos de push configurados con control remoto. *. Push puede sobrescribir los refs que no sean la rama actual (incluidos los refs locales que son estrictamente detrás de su contraparte remota). Para forzar un empuje a solo una rama, use un + delante de refspec para empujar (por ejemplo, git push origin + master para forzar un empuje a la rama maestra).


Esto me funciona muy bien,

git checkout origen / sucursal

Si ya estás en la sucursal, entonces es mejor hacer pull o rebase

git pull

o

git -c core.quotepath=false fetch origin --progress --prune

Más tarde, simplemente puede utilizar

git commit --amend -m "Your message here"

o si quieres abrir un editor de texto, usa

git commit --amend

Prefiero usar el editor de texto si tiene muchos comentarios. Puedes configurar tu editor de texto preferido con comando

git config --global core.editor your_preffered_editor_here

De todos modos, cuando haya terminado de cambiar el mensaje de confirmación, guárdelo y salga.

y luego correr

git push --force

Y tu estas listo


Otra opción es crear una "confirmación de errata" adicional (y push) que haga referencia al objeto de confirmación que contiene el error: la nueva confirmación de errata también proporciona la corrección. Una confirmación de errata es una confirmación sin cambios sustanciales en el código, pero sí un mensaje de confirmación importante; por ejemplo, agregue un carácter de espacio a su archivo Léame y confirme la modificación con el mensaje de confirmación importante, o use la opción git --allow-empty . Sin duda, es más fácil y más seguro que rebasar, no modifica el historial real y mantiene el árbol de rama limpio (usar amend también es una buena opción si está corrigiendo la confirmación más reciente, pero una confirmación de errata puede ser una buena opción para cometido mayor). Este tipo de cosas ocurren tan raramente que simplemente documentar el error es suficiente. En el futuro, si necesita buscar en el registro de git una palabra clave característica, es posible que la confirmación original (errónea) no aparezca porque se usó la palabra clave incorrecta en esa confirmación original (el error tipográfico original). Sin embargo, la palabra clave aparecerá. en la confirmación de errata, que le indicará la confirmación original que tuvo el error tipográfico. Aquí hay un ejemplo:

$ git log commit 0c28141c68adae276840f17ccd4766542c33cf1d Author: First Last Date: Wed Aug 8 15:55:52 2018 -0600 Errata commit: This commit has no substantive code change. This commit is provided only to document a correction to a previous commit message. This pertains to commit object e083a7abd8deb5776cb304fa13731a4182a24be1 Original incorrect commit message: Changed background color to red Correction (*change highlighted*): Changed background color to *blue* commit 032d0ff0601bff79bdef3c6f0a02ebfa061c4ad4 Author: First Last Date: Wed Aug 8 15:43:16 2018 -0600 Some interim commit message commit e083a7abd8deb5776cb304fa13731a4182a24be1 Author: First Last Date: Wed Aug 8 13:31:32 2018 -0600 Changed background color to red


Podría llegar tarde a la fiesta, aquí hay una respuesta que no veo aquí.

Paso 1 : git rebase -i HEAD~n para hacer rebase interactiva para las últimas n confirmaciones afectadas.

git abrirá un editor para manejar esas confirmaciones, observe este comando: # r, reword = use commit, but edit the commit message , eso es exactamente lo que necesitamos.

Paso 2 : cambia la pick a la r para aquellas confirmaciones que deseas actualizar el msg. Guarda y cierra el editor.

Paso 3 : en los siguientes archivos de confirmación, actualice el mensaje de confirmación como desee.

Paso 4 : después de todos los mensajes de confirmación se actualizan. es posible que desee hacer git push -f para actualizar el control remoto.


Sólo decir :

git commit --amend -m "New commit message"

y entonces

git push --force


Si desea modificar un compromiso anterior, no el último, deberá usar el comando rebase como se explica aquí, en la help.github.com/articles/changing-a-commit-message , en la sección Modificación del mensaje de mensajes de confirmación anterior o múltiple


Utilice estos dos pasos en la consola:

git commit --amend -m "new commit message"

y entonces

git push -f

Hecho :)


información adicional para el mismo problema si está utilizando la canalización de bitbucket

edita tu mensaje

git commit --amend

empujar al servidor

git push --force <repository> <branch>

a continuación, agregue --force a su comando push en la tubería

git ftp push --force

Esto eliminará sus compromisos anteriores y empujará su actual.

quitar la fuerza después del primer empuje

Lo probé en pipeline bitbucket y está funcionando bien


git commit --amend

luego edita y luego cambia el mensaje en la ventana actual. Despues de eso haz

git push --force-with-lease