2011-12-04 30 views
10

Tengo un repositorio con algún código central y, para cada cliente, deseo clonarlo para que pueda hacer git pull cada vez que un cliente quiera actualizar a la funcionalidad más nueva.Desactivar Git empujando desde el repositorio local

Con el interés de no arruinar las cosas y hacer cambios que solo una compañía ve, ¿hay alguna manera de permitir solo las búsquedas en un repositorio local? Todavía deseo poder impulsar los cambios en el repositorio central desde mi entorno de desarrollo, pero no quiero que las máquinas de producción puedan empujar.

+0

yo creo que depende de lo que estés usando para alojar su repositorio git. ¿Es Github, tu propio servidor de git o algo más? –

+0

posible duplicado de [¿Cómo hacer un repositorio de git de solo lectura?] (Http://stackoverflow.com/questions/1662205/how-to-make-a-git-repository-read-only) –

Respuesta

15

Especifique pushurl no existente en la sección remota del repositorio clon-source (llamado origen) en el archivo .git/config. Ejemplo:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = <url> 
     pushurl = www.non-existing-url.com 

O si no te gusta la edición del archivo de configuración del repositorio puede escribir:

$ git config remote.origin.pushurl www.non-existing.com 

Al empujar obtendrá un mensaje de error como:

$ git push 
fatal: 'www.non-existing-url.com' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

Por supuesto, tendrá que editar el archivo de configuración de cada repositorio clonado.

+0

Esto se parece al información que estaba buscando Desarmó mis repositorios, ya que los vuelvo a armar de una nueva forma, pero una vez que los vuelvan a juntar los probaré. –

5

Encuentro el comando remoto más útil, así que no tengo que meterme directamente con las configuraciones.

git remote set-url --push origin www.non-existing-url.com 

debería funcionar tan bien

Cuestiones relacionadas