2009-02-15 8 views
15

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.Configuración de Git para un equipo de 3 personas?

  1. Situación A: borradores y archivos pueden intercambiar 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 insertar archivos en el repositorio.

Los problemas generales sobre la Situación A

  • ¿Cómo se puede establecer sucursales remotas para las personas A, B y C, de modo que los miembros del equipo pueden ver los archivos de los que sus miembros del equipo quieren compartir?
  • ¿Cómo se puede configurar a la persona A como un dictador, que solo puede enviar cambios al repositorio sagrado?

problemas iniciales sobre la Situación A

  1. How can you set up a Git repository, where people A, B and C can pull? que asumen Git ya se ha instalado correctamente en el repositorio
  2. ¿Cómo se puede permitir que el escritor sólo se empuja?

problemas avanzados sobre ambas situaciones

Respuesta

13

Situación A

Parece que usted quiere configurar un integration manager workflow. 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 comprometen con su repositorio local y le piden a A que lo extraiga de su repositorio (una solicitud de extracción ); la persona A configura remota s para los repositorios de la persona B y de la persona C y luego puede git pull personB o git pull personB para fusionarse en los cambios. Persona A luego git push s los cambios fusionados en el 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. Persona A hace el repositorio sagrado: ver 'Crear un repositorio remoto' en este page from 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 de Unix).
  2. Las personas A, B y C, en sus directorios de inicio, clonan ese repositorio.

    cd ~/src 
    git clone ssh://sharedhost//local/git/project.git 
    cd project # edit files in here. 
    git commit 
    
  3. Una persona establece mandos a distancia para B y C de los repositorios.

    git remote add personB ssh://sharedhost/~b/src/project 
    git remote add personC ssh://sharedhost/~c/src/project 
    
  4. Ahora persona A puede git pull personB a buscar cambios de B. Cuando A está contento, va a git push para enviar los cambios recién fusionados al repositorio compartido y B y C pueden git pull para recuperarlos.

Si la configuración de los repositorios suena un poco complejo, es posible que desee pagar un proveedor como GitHub para manejar todo el hospedaje de repositorios Git compartidos para usted. También tienen apoyo donde pueden ayudarte con problemas. Para mí, encontré que la parte más complicada es comprender el flujo de confirmaciones. Una vez que lo tienes, las cosas empiezan a tener más sentido. Esta discussion at gitready.com puede ayudar a aclarar las cosas para usted. También hay un screencast que cubre material similar.

+0

También utilizamos el flujo de trabajo del administrador de integración. Es maravillosamente productivo y seguro, y se adapta muy bien a cualquier tamaño de equipo. En nuestra experiencia, * configurar esto fue fácil en términos de aspectos técnicos, pero el cambio mental no fue tan trivial para los desarrolladores *. Es por eso que hicimos un breve video tutorial para nuestro propio equipo, que luego publicamos en YouTube: [¿Qué es el flujo de trabajo de integración?] (Http://www.youtube.com/watch?v=67zQHNO2gaQ) – intland

1
  1. ¿Cómo se puede configurar un repositorio Git, donde la gente A, B y C puede tirar?

Es necesario utilizar -Protocolo de ssh (ssh usuario @ ipAddress), y proporcionar acceso ssh a 3 personas, proporcionando una cuenta para ellos en la máquina que aloja el repositorio (Source).

Recomiendo proporcionar claves SSH para los miembros de su equipo. Por favor, vea the post. Esto les permite clonar mediante la ejecución, por ejemplo:

git clone [email protected]:/path/to/repo.git 

Un problema desarrollado

¿Cómo se puede dar cuenta por 3 personas?

Si sus archivos deben ser privados, le recomiendo que tenga una cuenta en Github que le 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 que use Github, ya que es gratis para tal fin.


Un problema más desarrollada

¿Cómo se puede añadir un usuario a su Git repositorio?

Puede añadir un usuario a su equipo ejecutando el siguiente código en su sucursal Git

git add remote UserName ssh://ADDressToTheRepo 

Ejemplo del comando

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

Un más- problema más desarrollado

¿Cómo se puede agregar la rama de su amigo a su Git?

Por favor, mira mi respuesta al the thread.

+1

definitivamente es posible para usar setuptools sin acceso sudo, tiene que agregar algunas opciones (por qué las herramientas de configuración requieren eso es otra historia ...). Las opciones son: python setup.py --single-version-externally-managed --record =/dev/null --prefix = myprefix –

0

Uno me sugirió el uso de Gitosis, que elevó un new problem: ¿Cómo se puede configurar Gitosis a su servidor por primera vez la creación de Python-setuptools, cuando usted no tiene acceso sudo?

Solución para instalar Gitosis: Por favor, véase the post para instalar el nuevo 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, vea the post para instalarlos.

0

¿Cómo se pueden reportar los errores de manera eficiente al a sus compañeros de equipo?

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

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

Cuestiones relacionadas