Estoy usando git–svn para trabajar con una base de código y necesito fusionar los cambios en el enlace a mi sucursal.
Tengo ambas twigs en git, y cuando ejecuto git diff trunk mientras estoy en mi twig, puedo ver todos los cambios.
Sin embargo, cuando ejecuto git merge heads / trunk, aparece el post "Ya está actualizado".
Claramente no está actualizado. ¿Qué estoy haciendo mal?
"Ya está actualizado" puede significar:
Nota: tenga en count git svn advertencias
El seguimiento de fusión en Subversion es deficiente y, por lo tanto, hacer un desarrollo ramificado con Subversion puede ser engorroso.
Mientras quegit svn
puede rastrear el historial de copys (incluidas las twigs y las tags) para los repositorys que adoptan un layout estándar, aún no puede representar el historial de fusión que ocurrió dentro de git backstream a los usuarios de SVN.
Por lo tanto, se recomienda que los usuarios mantengan la historia lo más lineal posible dentro de git para facilitar la compatibilidad con SVN.En aras de la simplicidad y la interoperación con un sistema less capaz (SVN), se recomienda que todos los usuarios de
git svn
dcommit
,dcommit
ydcommit
directamente desde el server SVN, y eviten todas las operaciones degit clone/pull/merge/push
entre git repositorys y sucursales.
El método recomendado para intercambiar código entre git branches y los usuarios esgit format-patch
ygit am
, o simplemente'comprometing' al repository SVN.
Nada como un ejemplo. A continuación, le indicamos cómo llegar a esta situación:
(comenzando en un directory vacío):
> git init > echo "hello"> a.txt > git add -A > git commit -m "Creado en master" > testing de twig git > Prueba de pago de git
En este punto a.txt son idénticos en las twigs maestra y de testing
> echo "adios"> a.txt > git add -u > git commit -m "Cambió una testing"
Ahora (obviamente) habrá diferencias:
> git diff --name-status master M a.txt
sin embargo, git no tiene nada para fusionarse:
> git merge master Ya está actualizado.
Eso es porque los cambios se hacen aquí en la testing, no en el maestro. Si cambia a la testing, diff informará de manera similar, pero la combinación ahora se combinará en los cambios de testing a principal:
> git checkout master > git diff --name-status test M a.txt > testing de fusión git Actualizando 088cd9d..3d8c8e2 Avance rápido a.txt | 2 + - 1 file modificado, 1 inserción (+), 1 eliminación (-)
La fusión de Git es direccional, la fusión de la twig A a B no es lo mismo que la fusión de B a A.