Cómo resolver el error "no es algo que podamos fusionar" de git

Acabo de encontrar un problema al fusionar una twig en master en git. Primero, obtuve el nombre de la twig ejecutando git ls-remote . Llamemos a esa twig "nombre de sucursal". Luego ejecuté el command git merge branch-name y obtuve el siguiente resultado:

 fatal: branch-name - not something we can merge 

¿Cómo resuelvo este error?

Como se muestra en ¿Cómo surge "algo que no podemos fusionar"? , este error puede popup de un error tipográfico en el nombre de la twig porque está intentando extraer una twig que no existe.

Si ese no es el problema (como en mi caso), es probable que no tenga una copy local de la sucursal que desea fusionar. Git requiere conocimiento local de ambas twigs para fusionar esas twigs. Puede resolver esto revisando la twig para fusionar y luego volver a la twig en la que desea fusionarse.

 git checkout branch-name git checkout master git merge branch-name 

Esto debería funcionar, pero si recibes un error diciendo

 error: pathspec 'remote-name/branch-name' did not match any file(s) known to git. 

necesita recuperar el control remoto (probablemente, pero no necesariamente, "origen") antes de verificar la sucursal:

 git fetch remote-name 

Es una sugerencia tonta, ¡pero asegúrese de que no haya ningún error tipográfico en el nombre de la twig!

Cuando tomo desde una connection ascendente remota, git fetch --all , todos me git fetch --all :

 git remote add upstream [url to the original repo] git checkout [branch to be updated] git fetch --all git merge upstream/[branch to be updated] 

En otros casos, encontré que el error "No es algo que podamos fusionar" también ocurrirá si la twig remota (origen, ascendente) no existe. Esto puede parecer obvio, pero es posible que te encuentres haciendo git merge origin/develop en un repository que solo tiene master .

Tuve este problema también. La twig se veía como 'nombre de usuario / maestro', lo que parecía confundir a git, ya que parecía una dirección remota que definí. Para mí usar esto

 git merge origin/username/master 

Funcionó perfectamente bien.

Recibí este error cuando hice una git merge BRANCH_NAME "some commit message"git merge BRANCH_NAME "some commit message" agregar el indicador -m para el post de confirmación, por lo que pensé que el nombre de la twig incluía el comentario.

Obtiene este error porque la twig que desea fusionar no existe en su repository local.

Por lo tanto, primero compruebe la twig que desea fusionar en la twig principal mediante el siguiente command:

 git checkout branch_name_to_merge 

Después de esto, intente fusionarlo con la twig principal con el siguiente command:

 git merge branch_name_to_merge 

Si la cadena que contiene la reference es producida por otro command de Git (o cualquier otro command de shell para el caso), asegúrese de que no contenga un transporte de devolución al final. Tendrás que quitarlo antes de pasar la string a "git merge".

Tenga en count que es bastante obvio cuando sucede esto, porque el post de error en 2 líneas:

 merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9 - not something we can merge 

Para la posteridad: como dijo AxeEffect … si no tiene errores tipocharts, verifique si tiene caracteres ridículos en su nombre de sucursal local, como comas o apóstrofes. Exactamente eso me pasó a mí ahora.

Sugiero verificar si puedes cambiar a la twig con la que intentas fusionarte.

Obtuve este error a pesar de que la twig con la que quería fusionar estaba en el repository local y no había errores de ortografía.

Ignoré mis cambios locales para poder cambiar a la twig (Stash o commit también pueden ser preferidos). Después de esto cambié a la twig inicial, y la fusión fue exitosa.

Obtuvimos este error porque teníamos una coma (,) en el nombre de la twig. Eliminamos la twig local, luego la volvimos a verificar con un nuevo nombre sin la coma. Pudimos fusionarlo con éxito.

Probé la fusión de git "Mensaje de compromiso" en lugar de la combinación de git -m "Mensaje de compromiso".

Para mí, el problema ocurrió cuando probé esto:

 git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop 

Así que en realidad debería haber escrito el master lugar de develop , porque el maestro era el nombre de la twig de Subtree, no mi twig real.