forma correcta de enviar al server

Hola, soy nuevo en git pero entiendo lo básico, pero estoy confundido acerca de empujar al server desde una máquina cliente que usa SSH. (estamos usando un server privado)

Esto es lo que sucede: clono el repo en el server. Cambio un file, lo agrego y lo aplico, luego hago git push origin master.

Sin embargo, recibo un error que no me permite enviar porque el repository ya está 'desprotegido' en el server. Leí sobre el problema aquí: Git push error '[remote rejected] master -> master (twig actualmente está desprotegido)' Pero realmente no entiendo la respuesta. Algunas personas recomendaron cambiar la configuration config receive.denyCurrentBranch pero eso simplemente hizo que el post de error desaparezca; en realidad no dejó pasar el empuje.

Otra sugerencia que realmente funcionó es cambiar la twig en la que se encuentra el server.

Entonces, si un usuario está trabajando en la twig principal; en el server puedo cambiar a una twig temporal y el usuario puede enviar cambios sin problemas a la twig maestra. Sin embargo, el problema con esto es si el server está en su twig temporal, y un nuevo usuario necesita clonar el repository, terminarán clonando la twig temporal y de nuevo no podrán realizar cambios (porque empujar hacia la twig de temperatura 'comprobada').

Perdón por la diatriba Supongo que mis preguntas se networkingucen a esto: ¿cuál es la forma correcta de impulsar los cambios en el server o cómo los equipos de desarrollo se encargan de empujar al server? Gracias por cualquier ayuda.

Si entendí correctamente, está utilizando un repository principal central en un server del que todos clonan. Sin embargo, su repository central parece estar configurado como un repository privado con una copy de trabajo.

Los repositorys centrales deben configurarse como repositorys sin copy de trabajo, como se menciona en la respuesta principal de la pregunta vinculada. Si su server tiene algún sistema de automation de compilation, etc. que requiera una copy de trabajo, deben usar un repository de trabajo separado clonado desde la central.

Un repository de Git desnudo solo contiene el contenido versionado y no tiene nada desprotegido, es decir, no se realiza ningún trabajo de desarrollo directamente allí. El contenido nuevo siempre se push a un repository simple. El desarrollo se realiza en repositorys privados con una copy de trabajo, donde el contenido nuevo de otros desarrolladores o de un repository central suele ser pull . Considere esto: ¿qué pasaría con su trabajo si su colega empujara una nueva versión a su repository de trabajo privado y ¿Git aceptó esto silenciosamente en una twig en la que estás trabajando actualmente?