Git elimina permanentemente el commit

Una vez que envié accidentalmente el código que no debería enviarse a GIT, y envié varias confirmaciones antes del descubrimiento. Ahora quiero eliminar permanentemente esta confirmación en el servidor GIT. Los pasos específicos se registran de la siguiente manera.


    Suponiendo que la rama actual es maestra, la situación de confirmación actual es la siguiente, y ahora se deben eliminar commit_id_2 y commit_id_4:

commit_id_1
commit_id_2
commit_id_3
commit_id_4
commit_id_5
....


1. Crear una nueva rama para restablecer la operación

git checkout -b desarrollar
git push orign -u desarrollar


En segundo lugar, en el desarrollo de la nueva rama, restablezca la confirmación a la confirmación antes de commit_id_4

git reset --hard <commit_id_5>


3. Envíe una nueva rama para sobrescribir la información de confirmación anterior

git push orign HEAD --force


En cuarto lugar, de acuerdo con el orden original para restaurar la confirmación, no es necesario eliminar y luego enviar

git cherry-pick commit_id_3
git cherry-pick commit_id_1
git push orign desarrollar


Cinco, elimine la rama maestra original, desproteja una nueva rama del desarrollo como maestro

git push orign - eliminar maestro
// O git push orign: master
// Nota: master es generalmente la rama predeterminada, debe configurar la rama predeterminada para que se desarrolle antes de eliminar

git checkout -b master
git push orign -u maestro
// Finalmente, restablece el maestro a la rama predeterminada


La operación es engorrosa, pero es relativamente segura. Si hay alguna buena manera, puede compartirla. .

Publicado 60 artículos originales · Me gusta 44 · Visitas 340,000+

Supongo que te gusta

Origin blog.csdn.net/beyond702/article/details/64549705
Recomendado
Clasificación