Parece que un repositorio de git dentro de un repositorio principal no se incluye en una confirmación en el elemento primario a menos que esté configurado como un submódulo. ¿Es posible anular este comportamiento y tratar el repositorio git anidado como cualquier otro directorio? No quiero depender de dependencias externas a través de submódulos, pero quiero usar git para administrar estas dependencias dentro del proyecto.repositorios git anidados sin submódulos?
Respuesta
1/Se podría anular que a través de:
- o bien un git config configuración: establecer la variable de entorno
$GIT_DIR
definir el directorio de.git
del árbol de trabajo Git anidado como un externa.git
(externo a tanto el repositorio anidado como el repositorio principal) - o configurando su repositorio anidado 'N' fuera de el repositorio principal, pero finalice la operación de ese repo 'N' en el interior el repositorio principal:
core.worktree
establecer la ruta a la raíz del árbol de trabajo. Esto puede ser anulado por la variable GIT_WORK_TREE
medio ambiente y la opción de línea de comandos --work-tree
En ambos casos, la idea es tener un worktree anidada sin ningún .git
subdirectorio en él.
2/Con los submódulos, el repositorio de git anidado no se incluye realmente en el repositorio padre.
A special entry se crea en el árbol padre para grabar el Git SHA1 externo.
new file mode 160000
index 0000000..4c4c5a2
Véase también "nature of Git submodules" (tercera parte de la respuesta)
Sus métodos 1a y 1b son perfectos para mí, gracias. Estoy seguro de que este no es el enfoque recomendado, pero realmente necesito esta flexibilidad. Gracias por la respuesta completa! – stevo
¿No hay otra opción para hacer que git trate los directorios .git anidados como directorios simples? –
@Mr_and_Mrs_D no sé de – VonC
Ver también Are git submodules the only safe way to have working copies within working copies?.
En realidad, cuando me encontré con la discusión actual, me preocupaba un problema diferente al resuelto aquí: usar git como una especie de herramienta de archivo que podría archivar un árbol del sistema de archivos que ya tiene algunos directorios de trabajo git. . Quizás la otra pregunta esté más cerca de mi problema.
Aquí hay una herramienta dirigida a mi problema: http://webcache.googleusercontent.com/search?q=cache:Ffr9y2l0jh4J:eigenclass.org/hiki/gibak-backup-system-introduction+ anidado + git y cd = 2 & hl = en & ct = clnk & gl = ru Probablemente haya otras herramientas similares. –
oops - enlace roto en el comentario (que probablemente debería eliminar y agregar a su respuesta) –
Esta no es la solución más elegante, pero vale la pena mencionarla.
Si cierra la carpeta que contiene el repositorio, puede verificarlo en el repositorio externo.
Esto puede ser útil porque tendrá el estado completo completo, incluido git reflog
.
Parece que esta es la única opción real, para mal agrega pasos adicionales (manuales) ... – nus
me encontré con otro método que parece funcionar para mí
Si git add somefolder/
< - asegúrese de que tiene la /
en el extremo, entonces añadir todos los archivos en lugar de tratarla como un submódulo.
más se menciona aquí: http://debuggable.com/posts/git-fake-submodules:4b563ee4-f3cc-4061-967e-0e48cbdd56cb
Esto es lo que estaba buscando , pero recibo un mensaje de error si intento agregar el propio .git anidado: 'error: Ruta inválida 'prueba/datos/accesorios/limpiar/.git/COMMIT_EDITMSG' error: no se pueden agregar pruebas/datos/dispositivos/clean/.git/COMMIT_EDITMSG al índice fatal: no se pudieron agregar archivos' Parece que funciona con los archivos reales, gracias, es un comienzo – nus
He visto cómo las personas cambian el nombre de una carpeta anidada '.git' a' .checkout_git 'https://blog.gopheracademy.com/advent-2015/go-in-a-monorepo/ Y cambie el nombre de nuevo según sea necesario –
- 1. repositorios git anidados?
- 2. Submódulo de Git dentro de un submódulo (submódulos anidados)
- 3. Repositorios svn anidados
- 4. Git: Fusión y Submódulos
- 5. Problemas con los submódulos de git cuando los submódulos son repos privados de Github
- 6. Tener múltiples repositorios Git
- 7. git fusionar diferentes repositorios?
- 8. Restaurar submódulos de git de .gitmodules
- 9. Git no init/sincronización/actualizar nuevos submódulos
- 10. ¿Cómo se combinan dos repositorios git?
- 11. Cómo sincronizar dos repositorios git
- 12. Lío de submódulos de Git: cómo usar submódulos de git con desarrolladores que no están familiarizados con git?
- 13. Submódulos de Git en el maestro
- 14. submódulos de Git y dependencias anidadas
- 15. Submódulos de Git: excluir archivos/directorios específicos
- 16. Submódulos de Git: especifique un SHA específico?
- 17. Cómo trabajar con submódulos y estrategias git repositorio git
- 18. ¿Cómo comparo dos repositorios git?
- 19. Administración de muchos repositorios git
- 20. ¿Cómo organizas tus repositorios git?
- 21. Git pulling changes entre dos repositorios locales
- 22. Extensiones de Git utilizables con repositorios SVN?
- 23. ¿Cómo mantener dos repositorios git sincronizados?
- 24. ¿Cómo configurar repositorios públicos de git?
- 25. Nexus: repositorios proxy sin índices?
- 26. Cómo sincronizar repositorios Git en 2 servidores
- 27. ¿Cómo puedo renombrar un repositorio de git con submódulos?
- 28. submódulos de Git con contenido modificado y sin seguimiento: ¿por qué y cómo eliminarlo?
- 29. Integrando un repositorio público de git en un proyecto privado (sin submódulos o combinación de subárbol)
- 30. ¿Se puede desarrollar directamente en los submódulos de Git?
No estoy seguro de si este es el camino correcto a "dependencias de la sarna", pero propongo dos formas de lograr lo que quiere, además de algunas precisiones sobre la naturaleza de submódulos de Git . – VonC
Parece que lo que realmente quieres es una combinación de subárbol. Eso te dejará con un único repositorio y un solo historial. –
¿Estás seguro de que ** un repositorio git dentro de un repositorio padre no está incluido en una confirmación en el padre a menos que esté configurado como un submódulo **? Porque eso es lo que quiero, y si tienes razón, entonces Git tiene ese out-of-the-box. –