tag remove practices crear best git gitosis gitolite

remove - git tag commit id



gitosis vs gitolita? (5)

Estoy buscando instalar un servidor de git para compartir proyectos con mi equipo.

Puedes usar git.

Para tener un servidor de git lo único que necesitas en el servidor remoto es git. Si no necesita permisos precisos (compartir solo con su equipo sugiere que eso es una posibilidad) o cualquier característica adicional, no necesita gitolite, o similar.

La solución sin instalación

Si git está disponible en el servidor remoto, puede hacer lo que está pidiendo en este momento, sin hacer nada

ssh [user@]server cd repos/are/here/ mkdir project.git cd project.git git init --bare

En la zona:

cd projects/are/here/project git remote add origin [user@]server:repos/are/here/project.git git push -u origin master

Configurar un servidor de git es fácil.

Si desea hacer cosas con un usuario de git dedicado, los documentos para configurar un servidor de git son cortos, porque realmente es bastante fácil de hacer.

En resumen:

  • Instalar git
  • Crea un usuario llamado git
  • Agregue su clave pública y la de su equipo al archivo .ssh/authorized_keys del usuario de git
  • Cambiar el shell del usuario de git para que sea git-shell
  • Crea repos en el servidor
  • comience git pull / pushing a [email protected]

La única diferencia entre usar un usuario de git dedicado y no, es que si configuras el usuario de git para que use git-shell , no se permitirá hacer nada más. En términos de actuar como servidor git, es idéntico a la solución sin instalación

Estoy buscando instalar un servidor de git para compartir proyectos con mi equipo. No quiero crear una cuenta de usuario en el servidor con acceso SSH para cada desarrollador que necesite un acceso git. Parece que hay dos soluciones concurrentes que cubren este problema: gitosis y gitolita.

No pude encontrar ninguna comparación entre ambas soluciones. ¿Cuáles son las principales diferencias entre ellos? ¿Hay alguna otra solución similar?


Estuve dando vueltas durante un tiempo para conseguir que un servidor git funcione con acceso LDAP, control de acceso detallado, etc. Encontré una revelación: usa Gitlab :

  • repositorios git
  • acceso de grano fino (afaik gitlab usa gitolita bajo el capó)

si desea el método de instalación rápido y rápido: use el instalador bitnami


La principal diferencia es que la gitosis ahora está obsoleta y ya no se mantiene activamente.

Gitolite es mucho más característica completa , y acaba de lanzar su tercera versión .

Su característica más interesante es la referencia virtual (VREF para abreviar) que le permite declarar tantos ganchos de actualización como desee, lo que le permite restringir un impulso por:

  • dir / nombre de archivo :
    Digamos que no quiere que los desarrolladores menores impulsen cambios al Makefile, porque es bastante complejo:
    - VREF/NAME/Makefile = @junior-devs

  • cantidad de archivos nuevos :
    Supongamos que no desea que los desarrolladores más jóvenes utilicen más de 9 archivos por confirmación, ya que desea que hagan pequeños commits:
    - VREF/COUNT/9/NEWFILES = @junior-devs

  • detección avanzada de tipo de archivo :
    A veces, un archivo tiene una extensión estándar (que no puede ser ''gitignore''d), pero en realidad se genera automáticamente. Aquí hay una manera de atraparlo:
    - VREF/FILETYPE/AUTOGENERATED = @all
    Ver src/VREF/FILETETYPE para ver el mecanismo de detección.

  • revisando el correo electrónico del autor :
    Algunas personas quieren asegurarse de que "solo puede impulsar sus propios compromisos".
    - VREF/EMAIL-CHECK = @all
    Ver src/VREF/EMAIL-CHECK .

  • votando en commits :
    Una implementación básica de la votación de un compromiso es sorprendentemente fácil:
    - VREF/EMAIL-CHECK = @all .
    # 2 votes required to push master, but trusted devs don''t have this restriction
    # RW+ VREF/VOTES/2/master = @trusted-devs
    # - VREF/VOTES/2/master = @devs
    Ver src/VREF/VOTES para la implementación.

  • y así...


Para una solución aún más rápida y sucia, simplemente use git daemon e ir de igual a igual. Aquí hay un artículo sobre hacer exactamente eso.

Editar: reconozco que esto no responde estrictamente la pregunta del OP. Puse esto aquí principalmente para aquellos, como yo, que se encuentran con esto mientras buscan una manera sucia y sucia de compartir código hasta que se configure una cuenta github empresarial.


Solo una nota al margen. También puede usar Gerrit para sus necesidades:

Revisión del código de Gerrit

En primer lugar, parece que Gerrit se utiliza para la revisión del Código, pero también puede usarlo para administrar usuarios y otorgarles buenos permisos definidos. Puede omitir la revisión de código (a través de controles de acceso ) y usarlo solo para administrar proyectos y ssh-keys. Gerrit tiene un mecanismo de control de acceso realmente sólido:

Controles de acceso Gerrit

Puede restringir presionar cualquier rama, etiqueta o cualquier cosa que pueda imaginar que esté definida en el documento de controles de acceso.