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.
- Situación A: Borradores y archivos pueden intercambiarse entre 3 personas. El escritor solo puede enviar archivos al repositorio.
- 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
- ¿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
- ¿Cómo puedes permitir que el escritor solo presione?
Problemas avanzados sobre ambas situaciones
- ¿Cómo puede configurar Gitosis en su servidor configurando primero las herramientas de configuración de Python, cuando no tiene acceso a sudo?
- ¿Cómo puedes reportar errores de manera eficiente a tus compañeros de equipo?
¿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,
- 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
ensharedhost
. 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). 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
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
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 puedengit 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.
- ¿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.