Quiero volver a una copy de security de mi aplicación

Investigué este tema, pero me temo que tengo muy poca experiencia con Git y que puede estar causando más problemas probando diferentes cosas, así que estoy publicando para encontrar la mejor manera de volver a un estado anterior de mi aplicación.

Realicé los cambios y eliminé las twigs anteriores, pero no antes de hacer una copy de security de la aplicación localmente en una unidad externa.

Todo funcionaba bien (en function de la function), como lo demuestra mi implementación en Heroku, que aún funciona, antes de mis cambios más recientes.

No pude crear una twig para los nuevos cambios, algo que nunca volveré a hacer, y estaba trabajando fuera del maestro. Falsa confianza …

Entonces, como todo salió tan mal, decidí copyr la aplicación respaldada y comenzar de nuevo … pero eso no funcionó.

Creo que podría ser una simple cuestión de volver a los cambios no comprometidos en el maestro, pero estoy un poco congelado con el temor de que pueda dar un paso en falso.

¿¿¿Puede usted ayudar???

Estoy trabajando en carriles 3.2, ruby ​​1.9.3, git 1.7.4.4

Actualizar


He usado git reset –hard HEAD y ahora la terminal me dice que HEAD ahora está en 820f417 micro.

Los problemas que estoy teniendo son:

No sé cómo esto puede o no puede cambiar los files que he editado dentro del compañero de text y guardado en el disco duro.

Cuando abro la aplicación en el browser, obtengo el error:

ActiveRecord::StatementInvalid in StaticPagesController#home Could not find table 'users' 

Trace: app / helpers / sessions_helper.rb: 46: en user_from_remember_token' app/helpers/sessions_helper.rb:16:in la aplicación current_user' / helpers / sessions_helper.rb: 9: in signed_in?' app/controllers/static_pages_controller.rb:4:in signed_in?' app/controllers/static_pages_controller.rb:4:in casa '

La reversión de confirmaciones está cubierta en el Libro de Git :

  • Deshacer en Git – Restablecer, Finalizar y Revertir

Si no ha cometido los cambios, no puede volver a ellos. A less que te haya entendido mal y desees revertir los cambios de no compromiso de nuevo a la última versión confirmada, en cuyo caso esto es fácil.

Aquí hay un ejemplo:

Aquí hay un file después de cuatro revisiones. Solo los primeros tres han sido cometidos.

 > cat file This is revision 4 

Obtener el estado:

 > git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: file # no changes added to commit (use "git add" and/or "git commit -a") 

Volver a la última versión comprometida:

 > git reset --hard HEAD HEAD is now at e0d512a Revision 3 

Mira el file:

 > cat file This is revision 3 

Revertir el último commit:

 > git revert HEAD Finished one revert. [master 92a575c] Revert "Revision 3" 1 files changed, 1 insertions(+), 1 deletions(-) 

Mira el file:

 > cat file This is revision 2 

Ver el historial de revisión:

 > git log commit 92a575c481c69fc1dd809ba02a63009141f95b96 Date: Fri Mar 2 17:13:36 2012 +1100 Revert "Revision 3" This reverts commit e0d512acebbfb3891888dc59074f7d1f0748bba6. commit e0d512acebbfb3891888dc59074f7d1f0748bba6 Date: Fri Mar 2 17:11:25 2012 +1100 Revision 3 commit efc6d5af434c56991dabee43f36bc6e7ff284da7 Date: Fri Mar 2 17:11:01 2012 +1100 Revision 2 commit 8b73c59bb517df2589dcd0285a6d19045882ad8e Date: Fri Mar 2 17:10:20 2012 +1100 Revision 1 > 

Si conoce el hash SHA del compromiso al que desea restaurar su tree de trabajo, puede usar git checkout <commit> -- para get la confirmación especificada en su twig actual.

Si desea ver la diferencia en el contenido de sus files, puede usar el command git diff . Si desea comparar su tree de trabajo con lo que está en la CABEZA de su twig (última confirmación), use git diff HEAD . Si desea ver la diferencia en files específicos, enumere esos files al final del command diff. Puede usar git diff para comparar con files externos, sin embargo, probablemente debería centrarse en determinar si su repository todavía tiene la confirmación que contiene el estado del repository que necesita antes de search copys de security externas.

Cuando quiero descartar mis cambios recientes en un file comprometido, diga A.cpp.

Yo uso git checkout -- A.cpp