2012-04-21 29 views
98

Estoy usando git y estoy haciendo mi trabajo de desarrollo, que no quiero enviar, incluso por error. ¿Hay algún método para desactivar la inserción en cierto repositorio local? Un método es cambiar el nombre de la rama, otro es el undo push si se hace por error, pero espero que haya un método más directo.git cómo desactivar push

Respuesta

206

El siguiente comando le permitirá tirones funcionan, pero empuja a tratar de utilizar la URL no_push y fallan:

git remote set-url --push origin no_push 
+3

Gracias. ¿Cómo deshabilitar el 'empuje de una determinada rama'? – user984260

+5

@ user984260: Supongo que puede configurar el control remoto solo para esa rama: 'git config branch. .remote no_push'. Pero si la rama es una rama de desarrollo local, con su propio nombre, ¿es realmente un problema? No se presionará de manera predeterminada ('git push' sin argumentos empuja por defecto solo las ramas que existen localmente y en el remoto) e incluso si lo presionas, solo estás creando una nueva rama en el control remoto que puedes eliminar rápidamente. – Cascabel

+0

Sí, tienes razón. Gracias. – user984260

6

Dependiendo del control remoto, es posible que pueda restablecer su URL para usar el protocolo Git de solo lectura en lugar de SSH o HTTPS. Por ejemplo, para un proyecto en GitHub, hacer

git remote set-url <remote> git://github.com/Team/Project.git 

donde <remote> es comúnmente origin. git remote -v le dará una lista de mandos a distancia; aquellos que comienzan con https o tienen la forma <user>@<host>:<path> generalmente permiten empujar.

+0

¡No funcionó para mí! Esto también evita tirones :( –

-1

En Git 2.0, git branch --unset-upstream evitará git push trabajando en contra de la rama actual. (Esto también funciona en versiones de Git> = 1,8, si push.default se ha configurado como upstream o simple.)

# git push works 
$ git push 
Everything up-to-date 

# unset upstream 
$ git branch --unset-upstream 

# git push fails 
$ git push 
fatal: The current branch master has no upstream branch. 
To push the current branch and set the remote as upstream, use 

    git push --set-upstream origin master 

(Tenga en cuenta que git push origin master seguirá funcionando; esto sólo se hace con el abreviada git push Probablemente también previene. git indicadores de estado que aparecen en el indicador del shell para indicar que está delante o detrás del control remoto.)

+16

Esto deshabilita' git pull' también. – orome