¿Cómo se configura un repositorio de git donde algunos usuarios pueden ver ciertas partes del código fuente y otros usuarios pueden verlo todo? He visto muchas guías solo para darles a ciertos usuarios el acceso de confirmación, pero estas suponen que todos deberían tener acceso de lectura. También he oído hablar de gitosis, pero no estoy seguro de que sea compatible con esto y no ha tenido ningún compromiso en más de un año, así que creo que está muerto.¿Cómo configurar un repositorio de git donde diferentes usuarios solo pueden ver ciertas partes?
Respuesta
El protocolo git nativo no es compatible con esto; git asume en muchos lugares que todo el mundo tiene completa copia de todos del historial.
Dicho esto, una opción puede ser usar git-subtree para dividir parte del repositorio en su propio repositorio de subconjuntos, y volver a fusionar periódicamente.
Git no es compatible con el control de acceso en el repositorio. Usted puede sin embargo, implemente el control de acceso en el repositorio usted mismo, usando hooks, más específicamente el gancho update
.
En resumen: no puede. Git es un sistema de control de versiones basado en instantáneas (al menos a nivel conceptual), no basado en conjuntos de cambios. Trata el proyecto (repositorio) como un todo. La historia es una historia de un proyecto, no una unión de historiales de un solo archivo (es más que unir historiales por archivo).
Uso de ganchos como update-paranoid
gancho en contrib o VREFs mecanismo de gitolite
, puede permitir o prohibir el acceso al repositorio, puede permitir o prohibir acceso a las ramas individuales. Incluso puede prohibir cualquier commit que cambie las cosas en el subdirectorio especificado. Pero el proyecto siempre se trata como un todo.
Bueno, hay una cosa que puede hacer: hacer un directorio que desea restringir el acceso a en submódulo, y restringir el acceso a este repositorio submódulo.
Jörg ya ha señalado que puede usar ganchos para hacer esto. Exactamente qué gancho (s) necesita depende de su configuración. Si desea los permisos en un repositorio que se envía, necesitará el gancho update
como dijo. Sin embargo, si está en un repositorio en el que está trabajando (cometiendo y fusionándose), también necesitará los ganchos pre-commit
y post-merge
. El githooks manpage (Jörg vinculado a esto también) señala que de hecho hay un script en la sección contrib que demuestra una forma de hacerlo. Puedes obtener esto tomando un tarball git o sacándolo del repositorio gitweb de git: setgitperms.perl. Incluso si solo está utilizando el gancho de actualización, podría ser un modelo útil.
- 1. ¿Cómo se imprimen solo ciertas partes de una cadena?
- 2. Copie solo ciertas revisiones SVN de un repositorio a otro
- 3. ¿Cómo mostrar solo ciertas partes con CSS para Imprimir?
- 4. configurar git repositorio en Jenkins
- 5. Aceptando solo ciertas solicitudes ajax de usuarios autenticados
- 6. Repositorio de Git con múltiples usuarios en Ubuntu
- 7. espejo git de solo lectura de un repositorio svn
- 8. Recuperando solo ciertas columnas con Rails 3 donde la cláusula
- 9. Cómo filtrar el proyecto JIRA que solo ciertos usuarios pueden ver y acceder?
- 10. ¿Cómo hacer un repositorio de git de solo lectura?
- 11. Empujando un árbol fuente de Git, no solo un repositorio
- 12. Obtiene un solo archivo de un repositorio remoto de git
- 13. git: ¿puedo subtree fusionar solo un subtempo de un repositorio?
- 14. Magento: los usuarios pueden ver los datos de otros
- 15. Cómo configurar un repositorio git existente para que lo comparta un grupo UNIX
- 16. ¿Cómo pasar por un repositorio de git?
- 17. ¿Cómo solo comprobo (despliegue) solo las partes de un árbol SVN con TortoiseSVN?
- 18. git-svn branching: cómo configurar git config
- 19. ¿Cómo ver el historial de tamaño de archivo de un solo archivo en un repositorio de git?
- 20. ¿Cómo configurar un repositorio privado de Git en GitHub? ¿Es posible?
- 21. Cómo configurar "clúster git"
- 22. Ver repositorios donde soy colaborador
- 23. ¿Cómo extraer ciertas partes de una página web en Python
- 24. Dar acceso de solo lectura a un repositorio git
- 25. ¿Cómo trabajo con un repositorio git dentro de otro repositorio?
- 26. ¿Puedo descargar un repositorio git sin git?
- 27. ¿Cómo puedo alojar un repositorio de Mercurial para varios usuarios?
- 28. Cómo clonar selectivamente un repositorio git
- 29. Mover un repositorio de git
- 30. ¿Cómo desinstalar un repositorio git usando pip?
Git no está basado en changeset ?? – orbfish
No, no lo es. Commit object points a tree object que representa una instantánea del estado del repositorio. El conjunto de cambios es la diferencia entre dos árboles, de compromiso actual y principal. –