tag - Git, ¿Cómo cambiar un desnudo a un repositorio compartido?
que es un repositorio git (4)
Además de chmod -R g + w, también necesita editar (.git/)config
y establecer core.sharedRepository = ...
Para ..., hay un puñado de valores, descritos en git-init (1).
Así es como configuro mi proyecto:
git init --bare
Más tarde, aprendí que si quieres trabajar en un proyecto con varios usuarios, así es como debería haberlo hecho:
git init --bare --shared
Ahora intenté trabajar así y, por suerte, estamos al principio para poder configurar git nuevamente. Todavía me pregunto, sin embargo, cuando estás en medio de un proyecto no puedes hacer eso. ¿Hay alguna manera de que pueda cambiar un repositorio simple a uno compartido?
Dado que la opción --shared
solo establece los permisos para todo en el repositorio en escritura de grupo, podría hacerlo manualmente más adelante:
$ chmod -R g+w the/repo/path
Además, agregue
sharedrepository = 1
bajo la sección [core]
en .git/config
. Los repositorios compartidos también tienen la siguiente opción de recepción definida de manera predeterminada (que puede o no desear):
[receive]
denyNonFastforwards = true
Nota: para decidir si desea denegarNonFastforwards: esta opción significa que una combinación nunca ocurre en el repositorio compartido, lo que, a su vez, significa que nunca hay un conflicto de combinación en el repositorio compartido. En su lugar, se rechaza el empuje, lo que obliga al usuario a realizar la fusión en su repositorio local donde es mucho más fácil de solucionar y donde no interfiere con el uso del repositorio compartido por parte de otras personas.
Probablemente, si intenta compartir un repositorio existente, es posible que tenga muchos usuarios diferentes comprometidos.
1.Si tiene un permiso de superusuario, puede seguir adelante y cambiar todos los permisos usted mismo utilizando el paso dos; en cualquier otro caso, deberá preguntar a todos los usuarios con objetos creados con ellos, use el siguiente comando para saber quién son:
$ ls -la | awk ''{print $3}'' | sort -u
<your user_name>
<his user_name>
2.Ahora usted y los usuarios propietarios de todos los archivos tendrán que cambiar los permisos de esos archivos, haciendo lo siguiente:
$ chmod -R 774 .
3.Después de que necesite agregar una nueva propiedad que sea equivalente a --shared = group hecho para el nuevo repositorio, de acuerdo con la documentación, esto hace que el repositorio sea de escritura en grupo, hágalo ejecutando:
$ git config core.sharedRepository group
Si está intentando compartir el repositorio fuera del host en el que se encuentra, hay pasos de configuración adicionales que debe realizar (cosas ssh).
http://shapeshed.com/setting_up_git_for_multiple_developers/
http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/