Empujándome para forzarme remotamente a deshacer mi restablecimiento de hardware local

Estoy utilizando el git CommandLine para aprender, así como el SourceTree para visualizar los efectos de varios commands.

Comienzo fresco, hago 4 cambios y hago 4 commits, y presiono mi master de origen 4 veces:

commit a commit b commit c commit d 

Yo, entonces, git reset --hard <initialID> el command git reset --hard <initialID> que me lleva al punto donde empecé desde git reset --hard <initialID> , antes de crear estos commits.

Puedo ver en SourceTree que borré con éxito todas mis confirmaciones y restablecí todo lo difícil nuevamente al estado inicial.

Por supuesto, recibí una notificación de SourceTree de que ahora tengo 4 commits detrás del master de origen remoto, ¡lo cual es cierto!

Ahora, bash presionar mi estado actual para que mi control remoto también se actualice; es decir, restablecer de nuevo para comenzar, al igual que mi estado local ahora.

Sin embargo, esto es rechazado, entonces me pregunto si hay un command especial para forzar el empuje y también borrar todas mis confirmaciones y reiniciar todo lo difícil de nuevo al estado inicial en mi control remoto .

ps Obviamente, cuando tomo el consejo de Source Tree y vuelvo a tirar, estoy de vuelta a mi última situación de 4 commits; lo que significa que esto no funciona, mi reinicio por hardware, así que no debería tirar, pero bash presionar mi actual estado fresco en el control remoto, por lo que mi reinicio también se refleja en el control remoto, pero ¿cómo hago esto?

Git es muy bueno acerca de darle posts de error útiles la mayoría del time, acabo de reproducir su ejemplo localmente y me presentaron

 ! [rejected] error: failed to push some refs to {myRepo} hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (eg hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

'git push –help' luego trae la documentation para 'git push' (que contiene mucha información útil) incluyendo documentation sobre la bandera de la fuerza

-F
–fuerza
Por lo general, el command se niega a actualizar una reference remota que no sea un antecesor de la reference local utilizada para sobrescribirla. Además, cuando se utiliza la opción –force-with-lease, el command se niega a actualizar una reference remota cuyo valor actual no coincide con lo esperado.

Este indicador desactiva estas comprobaciones y puede hacer que el repository remoto pierda commits; Úselo con cuidado.

Tenga en count que –force se aplica a todos los refs que se presionan, por lo tanto, lo usa con push.default configurado para coincidir o con múltiples destinos de inserción configurados con control remoto. *. Push puede sobrescribir refs distintos de la twig actual (incluidos los refs locales que son estrictamente detrás de su contraparte remota). Para forzar un empuje a una sola twig, use un + delante del refspec para empujar (por ejemplo, git push origin + master para forzar un empuje a la twig principal). Vea la sección <refspec> … más arriba para más detalles.

Do fuerza (-f) empuje.

Nota: el command es peligroso, replaceá el historial de bashs de su maestro remoto con el historial de bashs de su maestro local.

 $ git push -f origin master