migrar entre diferencias comparacion git git-svn git-pull git-fetch

entre - Git-SVN: actualiza el repositorio de Git desde el servidor centralizado de SVN



git-svn download (2)

Estoy trabajando en un proyecto para el que todos usan SVN como servidor centralizado y todos impulsan los cambios que realizan en ese servidor. Quiero usar Git localmente y soy bastante nuevo en git svn . Hice un git svn clone del repositorio con git svn clone -r HEAD https://svn.repo/app/branch y quiero hacer una actualización a través de git.

Necesito un comando ''git pull like'' pero para extraer de una revisión específica del repositorio del servidor SVN. ¿También hay un comando ''fetch like'' para obtener de una revisión específica del repositorio del servidor SVN?

No tengo ninguna carpeta .svn en mi proyecto clonado y git remote no me da nada. Sin embargo, hice un git config -l y obtengo la URL del servidor SVN, así que de alguna manera estoy vinculado con el servidor SVN. Aunque no sé cómo buscar o tirar.

¡Gracias!


La mejor manera de trabajar en un repositorio de Subversion a través de Git:

  1. git svn init -s https://svn.repo/app/ myrepo suponiendo que bajo https://svn.repo/app/ el repositorio contiene los subdirectorios standard /trunk , https://svn.repo/app/ y tags
  2. Haz un git svn fetch en myrepo hasta que no se obtengan más confirmaciones (puede llevar bastante tiempo y algunas veces se cancela en Windows).
  3. Compruebe una rama o troncal de Subversion específica a través de git checkout -b trunk remotes/trunk

Luego, puede simplemente navegar, piratear y comprometerse en su Git Repo que contiene todas las confirmaciones y ramas de Subversion.

  • Para obtener nuevos confirmados de SVN, use git svn rebase
  • Para empujar sus confirmaciones locales en SVN use git svn dcommit

Para saltar a una revisión específica de Subversion, solo tiene que navegar por el historial a través git log y buscar una confirmación que refleje la confirmación de subversión correspondiente. Puede detectar fácilmente la revisión de Subversion en la línea git-svn-id: del mensaje de confirmación. Simplemente use un git checkout <commithash> para git checkout <commithash> explícitamente esa versión.


Un buen comienzo :

Para obtener un nuevo svn commit en su repositorio local: git svn rebase

Para empujar su compromiso local a SVN: git svn dcommit

Es probable que tenga que usar git stash y git stash pop , antes de usar los dos comandos anteriores cuando su copia de trabajo tenga cambios no comprometidos.