La rama actual no está configurada para extracción No se encontró ningún valor para la clave branch.master.merge en la configuración

163

Recibo este error cuando intento extraer desde el repositorio remoto usando Egit team> pull

La rama actual no está configurada para extracción No se encontró ningún valor para la clave branch.master.merge en la configuración

Ismail Marmoush
fuente
2
Tuve el mismo problema, pero para el valor de la clave remote.origin.url descubrió cómo solucionar esto en stackoverflow.com/a/10662106/759452
Adrien Be

Respuestas:

155

Su rama maestra local no está configurada para rastrear la rama maestra remota.

Puede hacer git pull origin masterpara decirle a git la rama explícita que desea extraer o agregar esto a su .git / config:

[branch "master"]
  remote = origin
  merge = refs/heads/master

Cuando presiona para dominar por primera vez, agregue el -uinterruptor ( git push -u origin master). Esto configurará todo automáticamente.

Michał Szajbe
fuente
25
Pero, ¿cómo haces esto en eclipse? Creo que la pregunta está etiquetada como "eclipse". ¡Gracias! :)
jmort253
2
+1 Gracias de todos modos. Su respuesta hizo ayuda porque resulta que no se crearon para tirar :) Una vez que nos dimos cuenta de cómo configurar que en Eclipse, las cosas se juntaron. Ahora nos damos cuenta de que trabajar con Git no es tan doloroso una vez que usted comprende cómo funciona. Básicamente, revisamos el repositorio nuevamente y lo configuramos para extraer.
jmort253
16
@ jmort253 sería genial si actualizara la pregunta con los detalles de lo que tenía que cambiar en eclipse para configurar esto.
gview
@gview - Lo siento, dejé de usar Egit y estoy usando la línea de comando. Cuando tiré, Eclipse marcó los archivos que mis colegas cometieron como modificados por mí y no incluyó los cambios. Entonces, estoy usando la línea de comando. No recomiendo EGit; sin embargo, mis colegas que usan Mac pueden usarlo. Si trato de darle otra oportunidad (dudoso), actualizaré la respuesta aquí. Francamente, no veo de qué se trata todo el bombo. Estoy listo para regresar a Subversion.
jmort253
9
@ jmort253, después de dejarte el mensaje, busqué y descubrí que la mejor manera de manejar esto es hacer exactamente lo que se recomendó en la respuesta original. Egit lee los valores de .git / config, por lo que editarlo con un editor de texto como se describe soluciona el problema.
gview
64

Como resultado, la respuesta de @ Michał Szajbe ES la solución al problema. Las claves de eclipse en cuestión se crean a partir del egit "directorio de trabajo". Si encuentra este problema, busque el directorio .git en ese directorio de trabajo y edite el archivo .git / config con un editor de texto, agregando la sección que describe Michal. En mi experiencia, esta es una operación bastante estándar en estos días para los casos en que se inicia por primera vez y se empuja a un control remoto no inicializado, que crea la rama maestra. En ese caso, no he encontrado una manera de no hacer la edición manual para git pull, incluso con la línea de comandos git.

Después de guardar la edición, haga clic con el botón derecho en el repositorio de git en su perspectiva egit "Git Repositories", y elija propiedades, ahora verá que esta sección de claves se ha creado (o más probablemente solo se ha leído desde el archivo de configuración) y un control remoto maestro a maestro local git pull funcionará como se espera en el futuro.

ingrese la descripción de la imagen aquí

Es posible que pueda ingresar estas claves y valores usted mismo, pero copiar y pegar lo que muestra Michal es ciertamente mucho más rápido y probablemente más seguro. En realidad, no intenté agregar las claves manualmente a través del editor de propiedades ni es probable que lo haga, ya que sé que este método funciona y tiene sentido ya que egit simplemente está llamando al repositorio git local.

También estoy apoyando a algunas personas en mi oficina que están usando Flex y el editor Flexbuilder que está construido sobre eclipse y egit. Estas instrucciones son igualmente relevantes para ellos.

gview
fuente
77
No edité el archivo de configuración directamente, pero agregué la clave "branch.master.merge" usando el cuadro de diálogo Propiedades que se muestra arriba. Esto también funcionó como un sharm.
Matthias Wuttke
57

Para solucionar este problema en Eclipse, abra el menú de Windows y seleccione Mostrar vista / Otro / Repositorios Git .

Desde la pestaña Repositorios Git:

  • expande tu repositorio local
  • clic derecho en Remoto
  • haga clic en Crear control remoto ...
  • Nombre remoto = origen
  • al lado de IRI presione el botón Cambiar
  • CTRL+ SPACEen URI
  • seleccione la ubicación remota
  • presione Finalizar
  • presione Guardar y Presione

De nuevo, desde la pestaña Repositorios Git:

  • clic derecho sobre origen
  • seleccione Configurar Fetch ...
  • En el mapeo de referencia, presione Editar (Avanzado) ...
  • presione Agregar todas las especificaciones de ramas
  • seleccione la casilla de verificación Forzar actualización
  • presione Finalizar

De nuevo, desde la pestaña Repositorios Git:

  • haga clic derecho en su repositorio local
  • seleccione Propiedades
  • presione Nueva entrada ...
  • ingrese las siguientes dos claves:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master
Marco Lackovic
fuente
44
Para mí, esta es la mejor respuesta para la pregunta.
Kashif Nazar
1
La respuesta aceptada parece faltar algunos pasos que se cubren aquí.
FableBlaze
47

Esto funcionó para mí:

Haga clic con el botón derecho en mi rama local desprotegida que no puede extraer (la mía se llama "desarrollo") Seleccione "Configurar rama ..." Para "Rama ascendente:", seleccioné "referencias / cabezas / desarrollo" Para "Remoto:" Seleccioné "origen" Izquierda "Rebase" sin marcar Presiona OK

Ahora mi ventana de configuración pref se parece a la de la respuesta de gview.

Zip184
fuente
14
Encontré "Configure Branch ..." muy difícil de encontrar. Logré encontrarlo yendo a la vista "Repositorios Git", expandiendo sucursales, locales y luego haciendo clic derecho en la rama
Edd
18

También tuve problemas para configurarlo. Está funcionando ahora, así que voy a compartir mi archivo de configuración. Creo que eso ayudará:

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true

    [branch "master"] 
        remote = origin 
        merge = refs/heads/master 
    [remote "origin"] 
        url = https://github.com/chelder86/ArcadeTongame.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Nota: https://github.com/chelder86/ArcadeTongame.git debe reemplazarse con su propia URL de clonación HTTPS.

chelder
fuente
Un archivo de configuración de trabajo es exactamente lo que necesitaba ver. ¡Gracias!
Martin Tuskevicius
10

El mismo problema. Así es como lo resolví dentro de eclipse / egit :

Originalmente cloné un repositorio remoto en la computadora de mi oficina (mi propio repositorio, pero en un servidor remoto). Luego creé una nueva rama del proyecto de repositorio localmente ("prueba"), y lo empujé al repositorio remoto. Cloné el repositorio remoto en mi computadora portátil, cambié a la rama de "prueba", trabajé en él, etc., presioné y luego volví a la oficina. Cuando intenté extraer los cambios de "prueba" del servidor, obtuve el mensaje "rama local no configurada para extracción".

El problema es que en el escritorio, la "prueba" es solo local, no tiene información de URL remota, por lo que no puede extraer los cambios.

Resolví esto dentro de eclipse (egit) por:

  1. eliminar sucursal local
  2. extraiga la rama del repositorio remoto como una nueva rama.

Los pasos fueron:

  • Ir a la perspectiva Exploración del repositorio de Git
  • cambiar el nombre de la sucursal local "zzz" (paranoico, ¡no me gusta eliminar hasta estar seguro de que lo he hecho bien!)
  • rt-clic en "Sucursales", "Cambiar a", "Nueva Sucursal"
  • despliegue la lista "Ref. fuente", seleccione la rama "prueba" (estrategia de extracción "fusionar", "Checkout nueva rama" marcada)
  • haga clic en "finalizar"
  • Cambie a la perspectiva habitual, asegúrese de que mis archivos estén presentes
  • cambie de nuevo a Git Repository Explorando y elimine la rama "zzz"

Nota: estoy ejecutando Eclipse Indigo. Los pasos pueden ser diferentes en otras versiones.

Ian Scott Fleming
fuente
9

Acabo de recibir el mismo problema, pero la respuesta aceptada no funcionó para mí. Esto es lo que hice (aunque no puedo confirmar si la respuesta aceptada tuvo un impacto ya que la configuración actualizada permanece):

Expanda su árbol de repositorio git desde la vista 'Repositorios Git'.

Haga clic derecho en 'Remotos' y seleccione 'Crear remoto'

Seleccione el botón de opción 'Configurar búsqueda' -> 'Aceptar'

Seleccione 'Cambiar' junto al cuadro de texto 'URI'

Ingrese los detalles de su repositorio git y haga clic en 'Finalizar'

Seleccione 'Guardar'

Ahora debería poder extraer desde el repositorio remoto.

Nota: cuando probé 'Dry-Run', que creo que es solo una prueba de conexión, falló pero el tirón aún funcionó.

cielo azul
fuente
funciona perfectamente. Solución similar a esta pregunta stackoverflow.com/a/10662106/759452
Adrien Be
3

Sobre la solución de gview:

then find the .git directory in that working directory and edit the .git/config file with a text editor

No necesita encontrarlo usted mismo ni abrirlo con un editor de texto.

  • Ventana -> Mostrar vista -> Otro -> GIT -> Repositorios Git
  • Expanda la carpeta de repositorio que creó.
  • Contendrá una carpeta llamada "Directorio de trabajo" expandirla.
  • Habrá una carpeta dentro de la carpeta "Directorio de trabajo" llamada ".git" expandirla.
  • Dentro de ".git" habrá "config", haga clic derecho en "config" -> abrir en el editor. El archivo de configuración se abrirá directamente en Eclipse, donde puede editarlo. Agregué lo siguiente y ahora puedo extraer sin errores:

[rama "maestro"]

remoto = origen

fusionar = referencias / cabezas / maestro

Miguel
fuente
2

Lo que descubrí que funcionó usando eclispe (esta ciertamente no es la forma correcta de hacerlo, pero funciona): empuje al repositorio remoto, elimine el espacio de trabajo local y el repositorio, importe desde git usando el diálogo de importación. El asistente de importación se encarga de configurar todo para futuros tirones.

Thomas
fuente
2

Prueba windows-> Show View-> Navigator. En las ventanas del navegador, busque la carpeta bin en su proyecto. Luego, confirme la carpeta bin en github y espere que funcione bien. Intenta tirar o buscarlo después de todas las tareas anteriores.

usuario11435
fuente
2
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

Una alternativa para PULL (evitando el error anterior) es:

  1. FETCH para actualizar su sucursal remota en su máquina
  2. FUSIONE su sucursal local con su sucursal remota
    (Equipo -> Fusionar ... -> Rastreo remoto -> origen / sucursal )
Rock
fuente
2

vista del repositorio de git -> + ramas -> local -> seleccione la rama local que desea asignar a la remota -> haga clic con el botón derecho -> seleccione el remoto (probablemente origen) y la rama aguas arriba

piotrek
fuente
esto lo hizo en eclipse sin ninguna de las modificaciones del "archivo de configuración". Debe ser la respuesta aceptada, ya que la pregunta es específica del eclipse.
josephus
1

La solución más simple que he encontrado al usar el complemento Eclipse Git es la siguiente:

  1. Haga clic derecho en el proyecto y seleccione Equipo> Push Branch
  2. Asegúrese de que la casilla junto a "Configurar el flujo ascendente para push and pull" esté marcada
  3. Haga clic en siguiente y complete el empuje.

Después de que esto se complete, la rama ahora también estará configurada correctamente para la extracción.

Francis Brennan
fuente
1

edite el archivo de configuración en su carpeta de repositorio .git de esta manera.

reemplace https://github.com/your/uria su repositorio github uri.

buena suerte.

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/your/uri
    fetch = +refs/heads/*:refs/remotes/origin/*

PD: usa la idea, olvida el eclipse

TGich
fuente
0

Debe reemplazar su archivo de configuración con este código ... su archivo de configuración se encuentra dentro de la carpeta 'git' en su repositorio. La carpeta 'git' está oculta, así que primero debes mostrar los archivos ocultos. Abra el archivo de configuración y escriba estos códigos:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true


hideDotFiles = dotGitOnly
[remote "origin"]
url = 'url to the git repository that you want to pull'
fetch = 

+refs/heads/*:refs/remotes/origin/*
puttykeyfile = 
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal


geometry = 887x427+66+66 171 192
víbora
fuente
0

Tengo el mismo problema en Eclipse Neon. Pero ninguna de las soluciones funcionó para mí. Recibí el problema cuando cambié la rama del proyecto y luego arrojó este error. La solución que probé es:

  1. Vaya al archivo de proyecto / .git / config .
  2. Si rebase = false , elimínelo.
  3. Actualiza tu proyecto.
  4. Haga git pull o tire del eclipse.
  5. Error resuelto

PD: Como es un hilo viejo, solo actualizo ya que esto podría ser para alguien más.

Abeja ocupada
fuente
0

Mientras se compromete, si encuentra este problema. Pruebe este enfoque simple:

  1. Team-> Push to upstream: se abre una ventana emergente.
  2. Copie su URI y péguelo en esa ventana emergente.

Tu rama se configura para tirar / empujar. Los cambios de su código serán empujados a repositorio.

Gracias

Ganapati prasad
fuente