password guardar credenciales configurar and git version-control gitosis

guardar - ¿Configurando Git para un equipo de 3 personas?



git config--global (4)

La publicación tiene como objetivo resumir toda la información para configurar un repositorio cerrado para 3 personas en una competencia. Por favor, siéntase libre de agregar un problema a la lista que no he notado. Por favor, agregue cada respuesta a cada pregunta como una respuesta separada.

  1. Situación A: Borradores y archivos pueden intercambiarse entre 3 personas. El escritor solo puede enviar archivos al repositorio.
  2. Situación B: De forma similar a la anterior, pero todos los compañeros de equipo pueden enviar archivos al repositorio.

Los problemas generales sobre la situación A

  • ¿Cómo se pueden configurar sucursales remotas para las personas A, B y C, para que los miembros del equipo puedan ver los archivos que los miembros de su equipo quieren compartir?
  • ¿Cómo se puede configurar a la persona A como un dictador, que solo puede impulsar cambios en el repositorio sagrado?

Problemas iniciales sobre la situación A

  1. ¿Cómo se puede configurar un repositorio Git, donde las personas A, B y C pueden obtener? Supongo que Git ya está instalado con éxito en el repositorio
  2. ¿Cómo puedes permitir que el escritor solo presione?

Problemas avanzados sobre ambas situaciones


¿Cómo puedes reportar errores de manera eficiente a tus compañeros de equipo?

Tuve un problema al informar errores y solicitudes de funciones a mis compañeros de equipo.

El software TicGit me resuelve el problema. Es un sistema de tickets para Git, que puede instalar simplemente configurándolo como una rama separada de su proyecto.


Situación A

Parece que desea configurar un flujo de trabajo de administrador de integración . En este escenario, la persona A crea un repositorio inicial que es el repositorio sagrado. Cada persona, A, B y C, clona ese repositorio para su trabajo personal. Cuando la persona B o C tiene algo que desean que A incluya en el repositorio para compartir, lo envían a su repositorio local y le piden a A que lo extraiga de su repositorio (una solicitud de extracción ); la persona A configura s remotas para los repositorios de la persona B y de la persona C y luego puede git pull personB a la persona B o a la persona de git pull personB git pull personB para fusionarse en los cambios. La persona A luego git push los cambios fusionados al repositorio sagrado.

Puede configurar la clonación y empujar una variedad de transportes. Lo más fácil es usar el protocolo git sobre ssh. p.ej,

  1. La persona A hace el repositorio sagrado: mira ''Crear un repositorio remoto'' en esta página desde 37signals . Digamos que está en /local/git/project.git en sharedhost . Puede omitir el --shared=group ya que desea que sea un repositorio de integración. (El acceso de escritura aquí está protegido usando permisos de archivos Unix).
  2. Las personas A, B y C, en sus directorios personales, clonan ese repositorio.

    cd ~/src git clone ssh://sharedhost//local/git/project.git cd project # edit files in here. git commit

  3. La persona A establece controles remotos para los repositorios B y C.

    git remote add personB ssh://sharedhost/~b/src/project git remote add personC ssh://sharedhost/~c/src/project

  4. Ahora la persona A puede git pull personB a la persona B para buscar los cambios de B. Cuando A está contento, se moverá para empujar los cambios recién fusionados al repositorio compartido y B y C pueden git pull para buscarlos.

Si configurar los repositorios suena un poco complejo, es posible que desee pagarle a un proveedor como GitHub para que maneje todo el alojamiento de repositorios de git compartidos por usted. También tienen apoyo donde pueden ayudarte con problemas. Para mí, encontré que la parte más complicada es comprender el flujo de compromisos. Una vez que lo tienes, las cosas empiezan a tener más sentido. Esta discusión en gitready.com podría ayudar a aclarar las cosas para usted. También hay un screencast que cubre material similar.


  1. ¿Cómo se puede configurar un repositorio Git, donde las personas A, B y C pueden obtener?

Debe utilizar ssh -protocol (nombre de usuario ssh @ ipAddress) y proporcionar acceso ssh a 3 personas, proporcionando una cuenta para ellos en la máquina que aloja el repositorio ( Fuente ).

Recomiendo proporcionar claves SSH para los miembros de su equipo. Por favor, mira la publicación . Esto les permite clonar ejecutando, por ejemplo:

git clone user@machine:/path/to/repo.git

Un problema desarrollado

¿Cómo puede proporcionar una cuenta para 3 personas?

Si tus archivos deben ser privados, te recomiendo que tengas una cuenta en Github que te cueste unos pocos dólares. También puede configurar un repositorio en su propio servidor por Gitosis.

Si sus archivos pueden estar abiertos, le recomiendo usar Github, ya que es gratis para ese propósito.

Un problema más desarrollado

¿Cómo puede agregar un usuario a su repositorio de Git?

Puede agregar un usuario a su equipo ejecutando el siguiente código en su sucursal de Git

git add remote UserName ssh://ADDressToTheRepo

Ejemplo del comando

git add remote schacon git://github.com/schacon/ticgit.git

Un problema más desarrollado

¿Cómo puedes agregar la rama de tu amigo a tu Git?

Por favor, mira mi respuesta en el hilo .


Uno me sugirió el uso de Gitosis, que planteó un nuevo problema : ¿cómo se puede configurar Gitosis en su servidor configurando primero las herramientas de configuración de Python, cuando no se tiene acceso a sudo?

Solución para instalar Gitosis : consulte la publicación para instalar la última versión de Python. Tenga en cuenta que su sistema probablemente tenga un Python antiguo. No puede actualizar el sistema Python sin actualizar todo el sistema operativo. Por ejemplo, no puede actualizar Python de Mac Leopard porque el sistema depende de él.

Ahora puede comenzar a instalar python-setuptools. Por favor, mira la publicación para instalarlos.