Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

644
Visualizações
GIT: no se puede empujar (problema de configuración extraño)

Estoy en una instalación nueva de Linux Mint.

Recibo el siguiente error cuando intento enviar desde cualquier repositorio:

 error: Malformed value for push.default: simple error: Must be one of nothing, matching, tracking or current. fatal: bad config file line 8 in /home/leng/.gitconfig fatal: Could not read from remote repository.

Esto es muy extraño, porque definitivamente tengo una versión que admite el comportamiento de empuje simple.

La salida de git --version es git version 1.8.3.2 .

El contenido de ~/.gitconfig :

 [user] name = My Name email = MyEmail@website.com [color] ui = true [push] default = simple

Aquí es donde se pone espeluznante.

Si cambio el comportamiento a matching (o a nothing , tracking o current , para el caso), luego intento empujar, obtengo exactamente el mismo mensaje de error. ¿Cómo es eso posible? ¿Está almacenando en caché la configuración de alguna manera? Incluso he probado a reiniciar. Incluso intenté purgar GIT completamente del sistema (y eliminar ~/.gitconfig ) y luego reinstalarlo.

Si elimino la sección [push] por completo del archivo .gitconfig (o si elimino el archivo por completo), luego trato de presionar, obtengo esto:

 Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git) error: Malformed value for push.default: simple error: Must be one of nothing, matching, tracking or current. fatal: bad config file line 8 in /home/leng/.gitconfig fatal: Could not read from remote repository.

... por lo que parece reconocer que no he elegido un comportamiento de empuje, pero también decir que he elegido un comportamiento sin apoyo. ¿Qué demonios está pasando aquí?

Incluso recibo el error si ~/.gitconfig completo.

¿Alguien me puede ayudar con esta brujería?

¡Gracias!

EDITAR:

Aquí hay un archivo .git/config solicitado:

 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = ssh://{my remote repo} fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Bien, lo arreglé, pero el método es brujería absoluta .

Traté de aislar el problema purgando GIT, eliminando el archivo de configuración, reinstalando GIT, luego creando un repositorio local desnudo, luego clonándolo y luego intentando empujar desde allí. Más o menos así:

 sudo apt-get purge git-core rm -f ~/.gitconfig sudo apt-get install git-core cd /git mkdir foo cd foo git init --bare cd /var/www git clone /git/foo cd foo touch blah.txt git add -A git config --global user.name "Name" git config --global user.email "user@email.com" git commit -m "Blah" git push

... mismo mensaje de error exacto, sin cambios allí. (Todavía algo de brujería seria.)

Luego, eliminé uno de mis repositorios que no tiene un origen local (se conecta a su origen a través de SSH) y cloné el repositorio nuevamente después de eliminarlo (con un nuevo comando git clone ssh://... ).

Recibí un error del comando de clonación:

 remote: Malformed value for push.default: simple remote: Must be one of nothing, matching, tracking or current.

¡Ajá! Ahora dice remote en lugar de error . Entonces el control remoto no admite este comportamiento. (Sin embargo, eso no explica por qué el error persiste en los repositorios solo locales con orígenes locales).

Entonces, entré por SSH en el servidor remoto y actualicé el git-core allí a la última versión, volví a intentar clonar el repositorio desde mi máquina local y funcionó.

Ahora, finalmente puedo git push . Increíblemente, esto también lo arregló para que pueda pasar de /var/www/foo completamente local a /git/foo git push completamente local (el repositorio básico de origen local). SSH en este servidor remoto y actualizándolo de alguna manera - WITCHCRAFT - corrigió el error de mi máquina local.

Por qué diablos los repositorios completamente locales se preocupan por la versión GIT de una máquina completamente diferente está ... más allá de mí. Qué completamente, completamente loco.

over 4 years ago · Santiago Trujillo Relatório

0

Recibí el mismo mensaje de error en git push .

Para mí, resultó que el git del usuario remoto era una versión anterior (1.7.2.5), y recientemente actualicé el ~/.gitconfig remoto para incluir:

 [push] default = simple

La solución fue eliminar esta configuración de la configuración del control remoto.

over 4 years ago · Santiago Trujillo Relatório

0

Como parece que otras personas tienen este problema y encontré una solución AQUÍ , pensé en publicar la solución que funcionó para mí.

EN BREVE: La solución que encontré fue en esta página . Evidentemente, la mejor solución es actualizar a una versión más nueva de Git (si es posible). Sin embargo, esa no era una opción para mí. Desde una máquina local, escribí el siguiente comando:

git config -–global push.default upstream

Esto eliminó el Malformed value for push.default: simple que había estado recibiendo. Sin embargo, no estoy del todo seguro de lo que hace upstream .

MI CONTEXTO (a modo de comparación): tenía un repositorio vacío ( bare ) en una computadora remota, y tenía algunos repositorios en un par de estaciones de trabajo "locales". pull del repositorio remoto, hago algo de trabajo y luego push mi trabajo al repositorio remoto. Empujar/tirar se logró a través de SSH. La mayoría de las veces, mientras se trabaja en una máquina local, empujar/tirar daría como resultado el error descrito anteriormente.

En resumen, antes de la solución, tenía el siguiente archivo ~/.gitconfig en la máquina remota:

 [user] name = Foo Bar email = FooBarPerson@email.com [diff] external = /Users/foobar/bin/git-diff-cmd.sh [color] diff = auto status = auto branch = auto [push] default = simple

Después de ingresar el comando anterior, mi archivo ~/.gitconfig en la máquina remota cambió a:

 [user] name = Foo Bar email = FooBarPerson@email.com [diff] external = /Users/foobar/bin/git-diff-cmd.sh [color] diff = auto status = auto branch = auto [push] default = upstream

Información de versión:

  • Máquina remota (ubicación del repositorio): 1.9.4
  • Mi portátil: 1.8.5.2 (Apple Git-48)
  • Otra computadora en la que trabajo: 1.7.7.4

Aquí hay otro sitio que puede ser útil para algunas personas: http://www.lorrin.org/blog/2011/10/03/argumentless-git-pull-and-git-push/comment-page-1/

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda