Pregunta
El uso del explorador historia msysgit, que nos registramos a cabo una determinada cometió. Esto fue un error - que estaba tratando de ver los archivos y pensé que tenía que comprobar a cabo a verlos
.Desde entonces, no he sido capaz de empujar cualquier compromete más a mi repo a distancia (en GitHub). Lo cual entiendo un poco, aunque no del todo. [Admito entender no totalmente cómo funciona el pago y envío, por favor ser suave con un novato.]
¿Cómo puedo deshacer de que la salida y que las cosas vuelvan al estado en que estaban antes?
Si hago clic derecho en el 'check out' comprometerse, me da la opción de 'eliminar esta rama'. Habrá que eliminar los archivos de esa confirmación [mal] o simplemente deshacer el registro de salida? Estoy ladrando al árbol equivocado?
Solución
Mi entendimiento es que accidentalmente se desprotegió una anterior de comprometerse, y luego hizo commit frescas en la parte superior de lo que desea conservar. En primer lugar, asegurarse de que tiene un puntero a su trabajo actual:
git checkout -b newbranch
A continuación, la caja donde estaba antes:
git checkout master
Esperamos que esto pondrá de nuevo en su rama de la línea principal y se puede empujar a GitHub como normales. Si a continuación desea tirar adentro de los cambios que ha realizado, a continuación, puede fusionar y (una vez que estás feliz) eliminar la rama temporal:
git merge newbranch
git branch -d newbranch
Otros consejos
Una rama es básicamente un puntero, en términos de C ++.
Es posible que desee para tratar de mover la rama en punto a otro comprometerse. Utilice git reset
para eso.
git checkout mybranch
git reset mypreviouscommit
Esto no elimina la confirmación, pero hace que mybranch
"punto a" mypreviouscommit
. Por lo tanto, todo lo que fuera allí a mypreviouscommit
estará allí en master
.
Si no le importa perder todos los cambios que ha realizado desde el último tirón a GitHub, puede simplemente eliminar el directorio y
git clone ...
en una fresca, nueva.