exención de responsabilidad, sospecho que no soy más que unos pocos días antes de que learing sobre subárbol :-)
Si usted está usando git subtree push
usted no está dando subárbol suficiente información para extraer y empuja tus cambios
Si clonó el repositorio correctamente, el subárbol ya estará allí. El Subárbol necesita que se le diga de qué subárbol desea empujar (incluso si solo tiene uno) y también necesita saber a dónde presionar, específicamente, no desea presionar al repositorio de nivel superior. Por lo tanto, desea algo como:
git subtree push --prefix=lib [email protected]:arges-github/lib.git master
Obviamente, el repositorio y el refspec se deben cambiar para que coincidan con su repositorio.
Si desea ver qué está sucediendo aquí (y ayuda), el subárbol en realidad divide los cambios que afectan a los archivos dentro del subárbol en una rama diferente y luego lo envía al repositorio del subárbol. Para ver que esto suceda, utilice subtree split
git subtree split --rejoin --branch=shared-changes --prefix=lib
continuación, echar un vistazo a la rama que ha realizado:
git checkout lib-changes
y, empujar manualmente
git push [email protected]:arges-github/lib.git master
Si esto no es trabajando entonces puede ser que no hayas fusionado el subárbol en tu repositorio. Cuando se agrega un subárbol:
git subtree add --squash --prefix lib [email protected]:arges-github/lib.git master
también es necesario combinar el subárbol y empujarlo de vuelta a su cesión temporal de nivel superior.
git subtree pull --squash --prefix lib [email protected]:arges-github/lib.git master
git push
¿Cómo agregaste el subárbol a tu proyecto de nivel superior? ¿Acabas de hacer un directorio y clonarlo? –
¡Hola! Agregué el subárbol a mi proyecto de nivel superior usando "git subtree add". Tal vez mi pregunta no sea lo suficientemente clara: si clono el repositorio en otra máquina, entonces tengo todos los archivos de proyectos más el subárbol "lib". Ahora cambio algo dentro del subárbol "lib" en el repositorio clonado, no puedo volver a enviar los cambios al servidor remoto usando "git subreeree push", ese es mi problema. – arge
¿Te ayudó la respuesta? –