Git confundirse cuando la fusión de una actualización en mi subárbol
-
19-09-2019 - |
Pregunta
Antes utilizábamos muchos submódulos en nuestros principales repositorios, sino para aumentar la capacidad de mantenimiento de nuestros proyectos que empezamos una rama experimental en el que todos ellos sustituido con subárboles.
Esto funcionó bien -. Pero ahora cuando estoy tratando de actualizar uno de los subárboles que se fusiona erróneamente la actualización en un directorio totalmente erróneo que ni siquiera es un subárbol
El repositorio principal, donde la rama "subárbol" contiene la rama experimental, es: git: //github.com/hugowetterberg/goodold_drupal.git
El repositorio de fusionar en las actualizaciones de: git: //github.com/voxpelli/drupal-oembed.git
La fusión haciendo: git merge -s subárbol oEmbed / master
El camino de las actualizaciones se deben fusionarse en: sites / all / modules / oEmbed /
La ruta que se fusionan en: módulos / agregador / traducciones /
Cualquier persona que tenga una idea de cómo obtener las actualizaciones en los subárboles o lo que el error puede ser?
Solución
Por desgracia, esto es un error (o característica que falta) en el código "git merge -s subárbol". En realidad, conjeturas los subárboles que desea fusionar. Por lo general, este arte de magia resulta ser correcto, pero si su sub-árbol contiene una gran cantidad de cambios (o era originalmente vacío, o lo que sea), entonces se puede fallar espectacularmente.
La mejor manera de trabajar alrededor de ella es:
-
Combinar los archivos como lo hizo anteriormente.
-
mover manualmente todos los archivos resultantes a donde debe se han ido.
-
git commit -a --amend
para corregir la fusión cometió.
fusiones futuras probablemente funcionan bien, a no ser que este directorio está constantemente en cantidades increíbles de flujo.
El comando experimental " git subárbol " tiene un parámetro --prefix
que debe dejar que se anula esto, pero desafortunadamente no funciona en este momento (ya que requiere de trabajo en torno a "git merge -s subárbol" características y no ha habido tiempo para hacerlo).
De todos modos, esto debería ser una situación rara y no será necesaria la solución incluso para futuras fusiones de un mismo proyecto.
Otros consejos
git versión 1.7.9.5
git pull -s subtree <remote name> <remote branch>
(fusión entró en el directorio equivocado)
git reset --hard HEAD^
git pull -s subtree -Xsubtree=correct/directory <remote name> <remote branch>
Tenga en cuenta que no hay una barra diagonal en el directorio
http://git.661346.n2.nabble.com/PATCH-0-8-The-return-of-Xours-Xtheirs-Xsubtree-dir-td4069081.html