La situación es la siguiente:

Tenemos algunos proyectos en los que persiste en Github, y se implementa a Heroku, que tiene su propio mini-Git. Algunos cambios se aplican directamente a Heroku (repositorio clonado a partir de Heroku, hizo cambios y empujado). En un mientras tanto la rama master en Github ha ganado también algunos cambios.

Ahora cuando quiero empujar el repositorio principal para Heroku, empujando falla debido a que se compromete en Heroku están fuera de sincronía con el local se compromete.

No quiero combinar con los cambios en Heroku – sólo quiero que se desvanecen.

Hay alguna manera de limpiar repositorio de git en Heroku para empujar a continuación, mi repo desde el principio?

No quiero destruir a la aplicación y volver a crearla de nuevo porque tiene algunos servicios de pago y yo solo soy un colaborador.

  • heroku run bash los registros en la carpeta de la aplicación, a continuación, basta con borrar todo
InformationsquelleAutor Paul | 2012-05-04

5 Comentarios

  1. 47

    Puedes usar el -f bandera en git (es un estándar de git bandera) para forzar el empate. Ver la nota de lado en el Centro de desarrollo de Git doc. Esto sobrescribirá los cambios que hayas hecho en Heroku obviamente.

  2. 34

    Instalar el Heroku Repo plugin y se usa para restablecer el control remoto repositorio git.

    Primero eliminar el repositorio git en el servidor:

    > cd /my-project/
    > heroku plugins:install heroku-repo
    > heroku repo:reset
    

    A continuación, vuelva a iniciar su repositorio git local por eliminar y volver a crear:

    > cd /my-project/
    > rm -rf .git
    > git init
    > heroku git:remote -a <appname>
    

    Donde <appname> es el nombre de tu aplicación en heroku.

    El 2 repos (local y remoto) ahora debe estar vacío y en sincronía.

  3. 3

    Si su push Heroku está fallando, porque no es un fast-forward cometer, y no está tratando de hacer algo de funky con su historia, es muy simple:

    1. Asegurarse de que su no-Heroku repositorio se define como un mando a distancia.
    2. Buscar todos los mandos a distancia.
    3. Combinar su otro repositorio en local de Heroku clon usando la estrategia recursiva con los «suyos» estrategia de opción.

      git merge -X theirs remotes/origin/master
      
    4. Empuje con la --force opción para hacer un no-avance rápido de comprometerse con su ascendente Heroku repositorio.

    Por otro lado, si usted está realmente tratando de purgar la historia, tiene otras opciones.

    • Quitar todo, pero el primer commit de su historia (el más fácil).

      git reset --hard $(git log --pretty=oneline | tail -n1 | cut -d ' ' -f1)
      git push --force
      
    • Crear un vacía la rama principal.
    • Uso git-filter-branch.

    Personalmente, me gustaría recomendar el mantenimiento de su historia y la fijación de los fast-forward problema como una mejor práctica, pero que sin duda tiene opciones si desea modificar su historia de forma agresiva. Git es muy flexible en ese sentido.

  4. 2

    También puede utilizar simplemente las heroku de la aplicación del sistema de control de versiones.
    Ir a la «Actividad» que tiene la historia completa del proyecto: restauración de la primera actividad y de la repo debe ser limpiada por completo, volviendo a su estado cuando la aplicación se creó originalmente en Heroku.

    • Que no funciona: ! [rejected] master -> master (non-fast-forward)
    • No sé, este es un problema de Heroku que son los que tienen que resolver. Pero… ¿estás usando la interfaz web o la línea de comandos? Trate de usar la interfaz web…

Dejar respuesta

Please enter your comment!
Please enter your name here