¿Cómo eliminar el primer commit en git?

Tengo curiosidad sobre cómo eliminar el primer commit en git.

¿Cuál es la revisión antes de cometer algo? ¿Esta revisión tiene un nombre o label?

Para mí, la forma más segura es usar el command update-ref :

 git update-ref -d HEAD 

Se eliminará el HEAD reference reference nombrado, por lo que se restablecerá (en voz baja, no perderá su trabajo) todas sus confirmaciones de su twig actual .

Si lo que quiere es fusionar el primer commit con el segundo, puede usar el command rebase :

 git rebase -i --root 

Una última forma podría ser crear una twig huérfana, una twig con el mismo contenido pero sin ningún historial de confirmación, y comprometer su nuevo contenido en ella:

 git checkout --orphan <new-branch-name> 

No hay nada antes del primer commit, ya que cada commit se refiere a un padre commit. Esto hace que el primer compromiso sea especial (una confirmación huérfana), por lo que no hay forma de referirse a un "estado" anterior.

Entonces, si quieres corregir la confirmación, puedes simplemente git commit --amend : esto modificará la confirmación sin crear otra.

Si solo quieres empezar de nuevo, elimina el repository .git y .git otro con git init

Es posible que solo desee editar su primer commit (ya que siempre hay un primer commit en un git repo). Considere el uso de git commit --amend --reset-author lugar del habitual git commit --amend .

Si desea conservar otras twigs, pero por ejemplo hacer que la twig principal comience nuevamente sin un historial común en otras twigs, una forma segura de lograr esto es crear un nuevo repository y enviar contenido de ese en el anterior:

 cd .. git init newrepo cd newrepo # make some initial commits git push ../oldrepo master:newmaster 

Esto crea la twig "newmaster" en el antiguo repository, con un historial que no es común con ninguna de las otras twigs. Por supuesto, también puedes sobrescribir el maestro, con `git push -f'.

Si desea destruir todas las twigs y todo el contenido existente, simplemente ejecute rm -rf .git/ .

Otra forma de hacerlo es:

  1. Pagar en una sucursal que desee mantener (por ejemplo, dev) git checkout dev
  2. Ahora, elimine la twig que desea restablecer la git branch -D master
  3. Ahora, crea una sucursal vacía con el mismo nombre de git checkout --orphan master

Por supuesto, todo esto dependería de su uso, pero si tiene más de una sucursal, eliminar el directory .git no tiene sentido.

Echa un vistazo a una sucursal temporal:

git checkout –orphan TEMP_BRANCH

Agrega todos los files:

git add -A

Confirmar los cambios:

git commit -am "Confirmación inicial"

Eliminar la twig anterior:

git branch -D master

Cambie el nombre de la twig temporal a principal:

git branch -m master

Finalmente, forzar la actualización a nuestro repository:

git push -f origin master