2012-06-26 11 views
5

Tengo un repositorio de git y lo empujé a un servidor. Luego configuro un gancho post-recepción en el servidor. Quiero comprobar que funciona. Tengo que comprometerme nuevamente solo para ver si funciona? Realmente me gustaría forzar un impulso mientras trato de configurar esto en lugar de seguir cometiendo errores que no tienen ningún valor real. No está funcionando, y simplemente no lo entiendo.Empujando sin comprometer

$ git push --force origin master 
Everything up-to-date 
+0

Específicamente para las páginas de GitHub en la horquilla: http://stackoverflow.com/questions/8587321/github-pages-in-forked-repo –

Respuesta

5

Debe pulsar un compromiso anterior para lograr esto. Por ejemplo, usted podría empujar la derecha se comprometen ante el titular actual utilizando este comentario:

git push --force origin HEAD^:master 

Después de esto se puede extender la cabeza cometer de nuevo:

git push origin master 

Sin embargo, en lugar de empujar todo el tiempo tener en cuenta llamando al gancho manualmente Suele ser más fácil, pero no te olvides de probar con un impulso real cuando creas que todo funciona solo para estar seguro.

+0

¿podría aclarar algo sobre el gancho? O apunta a alguna guía –

2

Hay un pequeño truco sucio que puede utilizar:

git stash save && git push --force origin "[email protected]{0}:master" && git stash pop 

Esto hace 3 cosas:

  1. Stash cambios no confirmados actuales. El bloqueo crea una nueva confirmación, pero en una referencia separada. No ensuciará tu historia. Además, borra el directorio de trabajo de los cambios. Vea el paso 3.
  2. Empuje el código escondido
  3. Haga estallar el alijo: despeje el alijo y vuelva a colocar todos los archivos en su directorio de trabajo.

Esto efectivamente empujará todos los archivos al control remoto sin crear un compromiso local.

Cuestiones relacionadas