Cancelar la primera confirmación en el nuevo repository

Creé un repository, sin embargo, cometí accidentalmente files que no quiero comprometer en absoluto. Me gustaría cancelar ese primer compromiso. git reset HEAD~ no funciona, recibo un error:

 $ git reset --soft HEAD^ fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' 

Traté de hacer un "commit inverso" en Attlasian SourceTree. Eso acaba de eliminar todos los files, pero no quiero eliminarlos, así que lo revertí nuevamente. Ahora tengo aún más compromisos que quiero eliminar.

descripción de la imagen

Me gustaría cancelar todas las confirmaciones en este repository, luego agregar .gitignore primero y luego agregar otros files. Los commits son solo locales, no empujé nada. Algunos de los files en las primeras confirmaciones no se deben insert nunca en línea, ya que contienen datos clasificados.

Eliminar el repository, iniciar otro.

Dado que el repository contiene "datos clasificados", parece que lo mejor es desarticular el sitio desde la órbita.

Los repositorys Git son baratos y su copy local está completamente contenida en el directory .git . Si arruinas la primera confirmación, elimina el directory .git (guarda tus otros files) y git init uno nuevo.

Elimine también el repository en línea y cree uno nuevo. Un nuevo repository en línea debe tener instrucciones para conectarse con su repository local existente; git remote add origin y tal.

Use git reset y git amend .

Un enfoque más generalmente aplicable es usar git reset . Esto le permite mover arbitrariamente las cabezas de las twigs. git reset --hard origin/master devolverá el master a tu primer commit (el origin/master pasa a apuntar en el primer commit, si no es que usarías su id de commit) y descarta los posteriores. --hard dice que reinicie tanto el área de preparación como la copy de trabajo (es decir, los files en el disco).

Desde allí puede usar git commit --amend para cambiar el git commit --amend anterior (es decir, primero). En lugar de hacer una nueva confirmación, esto alterará la anterior. Esto es útil para hacer cambios, o incluso simplemente corregir un error tipográfico en el post de confirmación.

Parece que ya presionaste tu primer commit. Como estás alterando esa confirmación, no podrás hacer git push . Tendrás que git push --force para sobrescribir lo que está en el repository remoto. Parece que eso es lo que quieres.