¿Configurando Git para un equipo de 3 personas?

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

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

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 files 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 repository sagrado?

Problemas iniciales sobre la situación A

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

Problemas avanzados sobre ambas situaciones

  • ¿Cómo puede configurar Gitosis en su server configurando primero las herramientas de configuration de Python, cuando no tiene acceso a sudo?
  • ¿Cómo puedes reportar errores de manera eficiente a tus compañeros de equipo?

Situación A

Parece que desea configurar un flujo de trabajo de administrador de integración . En este escenario, la persona A crea un repository inicial que es el repository sagrado. Cada persona, A, B y C, clona ese repository para su trabajo personal. Cuando la persona B o C tiene algo que desean que A incluya en el repository para compartir, lo envían a su repository local y le piden a A que lo extraiga de su repository (una request de extracción ); la persona A configura s remotas para los repositorys de la persona B y de la persona C y luego puede git pull personB persona B o una persona de git pull personB git pull personB para fusionarse en los cambios. La persona A luego git push los cambios fusionados al repository 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 repository sagrado: mira 'Crear un repository remoto' en esta página desde 37signals . Digamos que está en /local/git/project.git en shanetworkinghost . Puede omitir el --shanetworking=group ya que desea que sea un repository de integración. (El acceso de escritura aquí está protegido usando permissions de files Unix).
  2. Las personas A, B y C, en sus directorys personales, clonan ese repository.

     cd ~/src git clone ssh://shanetworkinghost//local/git/project.git cd project # edit files in here. git commit 
  3. La persona A establece controles remotos para los repositorys B y C.

     git remote add personB ssh://shanetworkinghost/~b/src/project git remote add personC ssh://shanetworkinghost/~c/src/project 
  4. Ahora la persona A puede git pull personB a la persona B para search los cambios de B. Cuando A está contento, se moverá para empujar los cambios recién fusionados al repository compartido y B y C pueden git pull para searchlos.

Si configurar los repositorys suena un poco complejo, es posible que desee pagarle a un proveedor como GitHub para que maneje todo el alojamiento de repositorys 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 repository Git, donde las personas A, B y C pueden get?

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

Recomiendo proporcionar keys 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 count para 3 personas?

Si tus files deben ser privados, te recomiendo que tengas una count en Github que te cueste unos pocos dólares. También puede configurar un repository en su propio server por Gitosis.

Si sus files 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 repository 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 command

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

Un problema más desarrollado

¿Cómo puedes agregar la twig 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 server configurando primero las herramientas de configuration 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 count 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.

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

Tuve un problema al informar errores y requestes 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 twig separada de su proyecto.