Creé un repositorio simple para publicar mi repositorio, pero no puedo encontrar la manera de actualizar el repositorio simple con el estado actual del repositorio principal.¿Cómo actualizo mi repositorio desnudo?
Respuesta
Si desea duplicar todos los objetos desde el repositorio principal, hacer esto dentro del repositorio principal:
git push --all <url-of-bare-repo>
Alternativamente, hacer una zona de alcance dentro de la cesión temporal al descubierto:
git fetch <url-of-main-repo>
No se puede hacer un pull, porque un pull quiere fusionarse con HEAD
, que no tiene un repositorio desnudo.
Puede agregar estos como mandos a distancia para ahorrar un poco de mecanografía en el futuro:
git remote add <whatever-name> <url-of-other-repo>
Entonces sólo puede hacer
git push --all <whatever-name>
o
git fetch <whatever-name>
dependiendo de lo reporto está dentro. Si <whatever-name>
es origin
, puede incluso dejarlo fuera en total r.
Descargo de responsabilidad: No soy un gurú de git. Si dije algo mal, ¡me gustaría estar iluminado!
Actualización: ¡Lee los comentarios!
El impulso parece funcionar bien, gracias a la pista, creo que podré integrar esto en un gancho o algo similar. –
Cuando hice un 'git-fetch --all' en el repositorio desnudo, no vi las actualizaciones que había hecho en el repositorio principal, pero cuando las sacaba del repositorio principal con' git push --all
¿Qué quiere decir con "no vi"? No estoy seguro de cómo 'git log' se comporta en un repositorio simple; tal vez intente 'git log --all'? – Thomas
Agregue el repositorio vacío como un repositorio remoto, luego use git push
.
Así que si quiero hacer esto sin presionar, no puedo usar un repositorio desnudo y usar un enlace simbólico o algo así? –
Empujar es el método normal para transferir contenido de repositorio a un repositorio simple, no hay necesidad de evitarlo. – Philipp
No siempre se puede presionar. Por ejemplo, si el descubierto está en una red privada, y el repositorio principal es público (en GitHub, por ejemplo) – fanf42
he creado un repositorio usando el siguiente comando
git clone --bare <remote_repo>
Luego trató de actualizar el clon desnuda usando la respuesta de Thomas, pero no funcionó para mí. Para obtener el repositorio desnudo para actualizar (que es lo que pienso Let_Me_Be estaba pidiendo), tuve que crear un repositorio espejo:
git clone --mirror <remote_repo>
entonces podría ejecutar el siguiente comando en el repositorio de espejo para agarrar las actualizaciones del repositorio principal :
git fetch --all
me encontré con esta solución mediante la lectura de Mirror a Git Repository By Pulling
Para cambiar un repositorio desnudo existente al espejo, todo lo que necesita hacer es agregar 2 líneas al archivo de configuración de git en
La única solución, además de recrear con git clone --mirror
es from Gregor:
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
luego puede git fetch
y verá las actualizaciones. Lo raro es que antes de esto, a pesar de que hay un remote
configurado, no tiene ramas enumeradas en git branch -a
.
¡Esto realmente me ayudó! El proyecto/repositorio de Capistrano también usa esta configuración para permitir que la actualización remota 'git remote' haga el trabajo. –
Si el control remoto tiene ramas actualizadas o eliminadas por la fuerza (y desea reflejar esos cambios), es posible que necesite agregar '--force' y' --prune' respectivamente a la línea 'git fetch'. –
Después de mucho perder el tiempo he encontrado que esto funciona para mí.
vez:
git clone --mirror ssh://[email protected]:2000/repo
git remote add remote_site ssh://[email protected]_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
Cada vez que desea sincronizar:
cd /home/myhome/repo.git
git --bare fetch ssh://[email protected]:2000/repo
git fetch ssh://[email protected]:2000/repo
git push --mirror remote_site
La tercera línea ('git config remote.origin.fetch 'refs/heads/*: refs/heads/*'') es la clave. Buena respuesta, gracias! – peterh
Suponiendo:
$ git clone --bare https://github.com/.../foo.git
Fetch con:
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
Nota: --git-dir=foo.git
no es necesario si primero tiene cd
en el directorio.
Es extraño que esta respuesta no esté en la parte superior. Al menos funciona aquí ... –
Hice un clon desnudo, y no hay origen ... – Kieveli
Aunque no estoy al tanto de cuándo ocurre eso, si 'origin' no está definido, siempre puedes reemplazar el' origen' parte con la ruta/url a su repositorio original. p.ej. '$ git --git-dir = foo.git buscar https://github.com/.../foo.git + refs/heads/*: refs/heads/*' – antak
- 1. ¿Es posible limpiar un repositorio desnudo?
- 2. Can Git clonar un repositorio desnudo en otro repositorio vacío
- 3. ¿Cómo presionar a un repositorio de Git no desnudo?
- 4. git fusión de las ramas en un repositorio desnudo
- 5. ¿Por qué no puedo presionar a este repositorio desnudo?
- 6. ¿Cómo actualizo Homebrew?
- 7. Actualizo mi repositorio de github que se bifurcó de otro proyecto
- 8. ¿Cómo actualizo a addEventListener?
- 9. ¿Cómo puedo hacer que un repositorio de git no desnudo sea uno simple?
- 10. ¿Cómo actualizar 'git log' después de 'git svn fetch' en un repositorio desnudo?
- 11. ¿Cómo inicio/actualizo un submódulo de git en un árbol de trabajo después de presionar a un directorio de trabajo desnudo?
- 12. ¿Cómo puedo consultar mi repositorio de subversión?
- 13. ¿Cómo puedo mover mi repositorio en TortoiseSVN?
- 14. ¿Cómo actualizo mi token de acceso de google_oauth2 con mi token de actualización?
- 15. ¿Cómo actualizo la ruta MATLAB?
- 16. ¿Qué es un puntero desnudo?
- 17. he perdido mi repositorio SVN
- 18. Agregar/confirmar al repositorio desnudo de una carpeta que no es Git
- 19. ¿Cómo actualizo virtualenv en Ubuntu?
- 20. ¿Cómo actualizo devDependencies en NPM?
- 21. Reemplazando el repositorio remoto de git con mi repositorio
- 22. ¿Por qué maven usa mi repositorio interno antes de mi repositorio local?
- 23. ¿Cómo actualizo RESTfully una colección de has_and_belongs_to_many?
- 24. ¿Cómo actualizo un paquete de Python?
- 25. ¿Cómo actualizo n filas en una tabla?
- 26. ¿Cómo actualizo documentos incrustados en Doctrine MongoDB?
- 27. ¿Cómo actualizo los datos en indexedDB?
- 28. ¿Cómo puedo eliminar todos los archivos en mi repositorio de git y actualizar/enviar desde mi repositorio de git local?
- 29. ¿Cómo actualizo mi ruby 1.9.2-p0 al último nivel de parche usando rvm?
- 30. ¿Cómo actualizo mi ListView después de que la base de datos cambia?
Ver esta respuesta: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide/2964397#2964397 –