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:
-
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/ ytags
- 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). - 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.