Forma correcta de compartir un git repo sobre ssh

Estoy usando un cuadro como repository compartido, y mi equipo se conecta a él a través de ssh .

Lo que hago es:

  1. Crea un repository git vacío en la máquina central git init

  2. Luego, desde cada estación de trabajo, haga algo como git clone ssh://user@central-box/Users/user/Projects/my-project/.git/

Esto funciona bien, pero git sigue gritándome cada vez que hago un push como este:

texto alternativo

¿Hay una mejor manera de compartir un repository sobre ssh ?

IMPORTANTE: Soy muy consciente de la existencia de gitosis y herramientas así, no quiero nada lujoso. Solo compartiendo un .git repo sobre ssh.

Gracias

En la máquina host, deberías hacer

 git init --bare 

Porque no necesita los files reales, solo el repository.

Si el post de advertencia está en PRIMER paso a un repository, y nadie lo ha tocado, haga una

 git push -f 

De lo contrario, este error significa que su esquema de sucursal no es correcto. NO deberías estar editando el nombre de twig / branchname. Usted quiere su propia sucursal local llamada branchname, luego, cuando esté listo para registrar su código, lo hará

 git commit git pull git push 

Y empujará desde su nombre de twig local al origen / nombre de sucursal.

Editar

Me gustaría ver el resultado de este command en su repository local:

 git branch 

No debería ver la palabra origen o el nombre de su server en ninguna parte de la salida

Además de la solución de bwawok, tendrás que tener cuidado con los problemas de permissions. De forma pnetworkingeterminada, cuando git crea files en nombre de un usuario, sus permissions provienen de umask del usuario y su grupo está configurado para el grupo pnetworkingeterminado del usuario. Para las umasks comunes y los grupos pnetworkingeterminados, esto romperá un repository compartido, ya que otros usuarios no podrán modificar dichos files.

Afortunadamente, git puede configurarse para hacer lo correcto en esta situación: eche un vistazo a la opción --shanetworking para git init (o la configuration de core.shanetworkingRepository ). La opción más simple es probablemente --shanetworking=group , que concede acceso de escritura a todos los usuarios del grupo "git".