2012-04-07 11 views
15

Hace poco hizo un git stash, luego hizo un poco de trabajo en la rama y comprometido, y tiene estos errores al intentar hacer una git stash apply:Cómo resolver "borrar/modificar" conflicto causado por "escondite git aplica"

CONFLICT (delete/modify): app/controllers/orders_controller.rb deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of app/controllers/orders_controller.rb left in tree. 
CONFLICT (content): Merge conflict in app/models/product.rb 

git status muestra lo siguiente:

$ git status 
# On branch develop 
# Your branch is ahead of 'origin/develop' by 16 commits. 
# Unmerged paths: 
# (use "git reset HEAD <file>..." to unstage) 
# (use "git add/rm <file>..." as appropriate to mark resolution) 
# 
# deleted by us:  app/controllers/orders_controller.rb 
# both modified:  app/models/product.rb 

el archivo marcado como "borrar/modificar" era un nuevo archivo que he añadido y sin embargo no había cometido antes de la stash.
Me gustaría volver al estado en el que me encontraba antes del git stash - habiendo realizado cambios locales no confirmados. ¿Puedes sugerir cómo hacer que eso suceda?

Gracias.

Respuesta

8

Está colocando el alijo en un estado diferente; estado que tiene un compromiso adicional. Y lo que es peor, el compromiso ha introducido conflictos de fusión, como ya sabes.

Usted tiene dos opciones:

  1. pop que Stash en el más nuevo y se comprometen a resolver los conflictos
  2. estallar el alijo en la previa confirmación.

Suena como # 2 es lo que quieres hacer. Use:

git stash branch new_branch [<stash>] # <stash> will be the last one if not provided. 
+0

gracias. Me acabo de dar cuenta de que hice mi "escondite aplicar" a la rama equivocada. ¿Hay alguna manera de deshacer la 'aplicación oculta' en esta rama? – stupakov

+0

¿Estaba la sucursal incorrecta limpia antes de que hiciera la "solicitud de alijo"? Y, ¿'stash apply' o 'stack pop'? – GoZoner

+0

estaba limpio, y lo hice 'esconder aplicar' – stupakov

0

¡Debe resolver el conflicto! Como ha actualizado el último repositorio, se han cambiado los dos archivos, project.rb y orders_controller.rb se han modificado en el último repositorio. Al mismo tiempo, su cambio local (escondite) también ha modificado estos dos archivos, cuando los aplica, habrá conflicto.

Debe resolver el conflicto para aplicar su cambio local.

Para el primer archivo, orders_controller.rb se borra el último repositorio, ¿quieres conservarlo o no cuando presionas el último compromiso?

Para el segundo archivo, project.rb debe resolver el conflicto en el archivo.

Cuestiones relacionadas