Tengo un repositorio git remoto con gran historial y canal de conexión lenta. ¿Dónde están algunos usuarios locales, y lento empujar/tirar después de grandes compromisos o la clonación desde cero para los nuevos usuarios son un gran problema, ahora. Quiero crear un reflejo local de él. Los cambios locales se deben comprometer con el repositorio local y sincronizar con el control remoto en segundo plano. Entiendo que este problema está en demanda, pero aún no he encontrado ninguna solución (no soy administrador de repositorio remoto, simplemente intento simplificar el trabajo local con él).espejo local Git
Respuesta
Dado que escribe en los comentarios que las personas detrás de la conexión lenta harían la mayor parte del trabajo, le sugiero que configure el sitio remoto lento para que sea un espejo de su repositorio local contra el que se comprometería.
En primer lugar hacer un clon desnuda de distancia lento en un servidor local
$ git clone --bare git://slow/repo.git
Usted gente local ahora solo debería comprometerse a que el clon, no el lento remoto.
luego configurar una tarea programada o algo similar para empujar cambios en tu repositorio local en el sitio lento con
$ git push origin --mirror
Mediante el uso de --mirror
le dice a Git que empujar todas las ramas y etiquetas.
¡Gracias! Lo pruebo para mi prueba github repo y funciona. El clon completo del repositorio remoto real toma 20 horas o más, y aplico esta solución en un futuro cercano. – exbluesbreaker
Encontré que esta solución eliminará todos los cambios realizados en el repositorio remoto sin acceso a través de la duplicación local. ¿Hay alguna forma de fusionar los cambios? Comprometerse con el repositorio remoto es raro, pero no quiero perder dichos commits. P.ej. Por primera vez, algunos desarrolladores locales pueden continuar realizando confirmaciones de repositorio remoto directamente por error. – exbluesbreaker
@exbluesbreaker: podría soltar el '--mirror', pero luego debería especificar qué rama desea insertar, p. Ej. 'git push origin master'. Entonces probablemente también quieras agregar '--tags' al push para insertar etiquetas. '--mirror' presionará todas las ramas y etiquetas locales, por lo que hace todo esto automáticamente (pero sobrescribirá los cambios remotos). –
Usted debe ser capaz de hacer clones de poca profundidad con
git clone --depth=20 url-to-your-repo some-path
Esto debería permitir que se moleste con la mayor parte de la historia.
- 1. Espejo git svn a
- 2. espejo de Git con gerrit
- 3. ¿Cómo configuro un espejo CPAN local?
- 4. Actualización de un espejo git de un repositorio SVN
- 5. espejo git de solo lectura de un repositorio svn
- 6. Clonación repositorio Git local
- 7. Git deshacer rama local eliminar
- 8. ¿Anonimizar un repositorio git local?
- 9. Espejo Two TrackBar
- 10. carácter espejo Unicode?
- 11. Configuración de Gerrit con un espejo Git de un repositorio de Subversion
- 12. ¿Cómo detecta Github los repositorios en espejo?
- 13. git pull (actualizar archivo local solamente)
- 14. git push, no push all local commits
- 15. Restablecer el repositorio local de git
- 16. ¿Listar archivos en el repositorio git local?
- 17. Git: ¿Cómo sobrescribir el cambio local?
- 18. ¿Cómo elimino un repositorio local en git?
- 19. Desactivar Git empujando desde el repositorio local
- 20. Empuje el Proyecto Git al Directorio Local
- 21. git fusionando cambios en la sucursal local
- 22. Cómo cancelar un local de Git cometer
- 23. La mejor manera de configurar espejo para Gerrit y todos sus repositorios Git
- 24. ¿Cómo puedo proporcionar un espejo bidireccional de un repositorio Git con otro SCM? (bzr, hg, etc.)
- 25. Determinar el espejo más cercano PHP
- 26. ¿Espejo un repositorio de Mercurial en Subversion?
- 27. Imagen de espejo de un árbol binario
- 28. Cómo cambiar el espejo de macports
- 29. página única de espejo con httrack
- 30. Capistrano + Git: repositorio local al servidor de producción
Esta publicación anterior le ayudará a lograr un espejo de un repositorio remoto http://stackoverflow.com/questions/3959924/whats-the-difference-between-git-clone-mirror-and-git-clone-bare –
¿Solo se están comprometiendo sus usuarios locales con el repositorio remoto lento o hay otras personas en otro lugar que están trabajando? –
@honk Sí. Los usuarios locales que realizan el 99% del trabajo, los usuarios remotos necesitan acceso de solo lectura (o con confirmaciones muy raras). Creo que la velocidad de la sincronización de fondo local remota será apropiada para los usuarios remotos, creo que deben tener un retraso si la sincronización aún no ha finalizado. – exbluesbreaker