ramas - resolver conflictos en github
Visual Studio 2013 no ofrece fusionarse en Git pull (5)
Estoy trabajando con Visual Studio 2013 Update 4 y git (alojado en Visual Studio Online). Tengo 2 confirmaciones locales y 2 confirmaciones en una sucursal remota. NO hay cambios locales para comprometer:
Cuando intento hacer Pull (o Fetch) en Visual Studio, obtengo un error:
Ocurrió un error. Mensaje detallado: 1 conflicto impide el pago
Sí, hay un conflicto, debería fusionarme. Y de acuerdo con esta página, se me debería ofrecer un enlace para resolver el conflicto. Pero no veo eso en VS.
Puedo fusionarme fuera de VS, pero ese no es el punto. Al mismo tiempo, mi compañero de trabajo ejecutando la misma configuración puede hacer la fusión sin problemas. ¿Qué pasa con mi VS?
ps Tengo msysgit instalado que podría haber mezclado con las configuraciones. De acuerdo con este post mi global .gitconfig
ve así:
[user]
mail = [email protected]
name = trailmax
email = [email protected]
[core]
excludesfile = C://Users//trailmax//Documents//gitignore_global.txt
autocrlf = true
editor = /"C:/Program Files (x86)/GitExtensions/GitExtensions.exe/" fileeditor
[diff]
tool = vsdiffmerge
[difftool "vsdiffmerge"]
cmd = /"C://Program Files (x86)//Microsoft Visual Studio 12.0//Common7//IDE//vsdiffmerge.exe/" /"$LOCAL/" /"$REMOTE/" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = true
[mergetool "vsdiffmerge"]
cmd = /"C://Program Files (x86)//Microsoft Visual Studio 12.0//Common7//IDE//vsdiffmerge.exe/" /"$REMOTE/" /"$LOCAL/" /"$BASE/" /"$MERGED/" //m
keepbackup = false
trustexistcode = true
[credential]
En mi caso, no pude ver la opción Resolve the conflicts
porque todavía no había confirmado los cambios locales y estaba intentando sincronizar con los cambios remotos. Tan pronto como cometí mis cambios locales y luego probé una sincronización nuevamente, apareció el enlace Resolve the conflicts
.
Entonces, el punto aquí es: cometer los cambios primero y luego tratar de sincronizar. Se iniciará una fusión y Visual Studio le permitirá pasar por cada uno de los conflictos .
Me encontré con el mismo problema donde "Se produjo un error. Mensaje detallado: 1 conflicto impide el pago" se muestra donde no hay ninguna opción para resolver el conflicto como se muestra en la respuesta de Leinel.
La razón se debe a un archivo sin seguimiento que es el mismo archivo que se va a extraer. Acabo de eliminar el archivo sin seguimiento y reintentar el tirón.
No tenía ningún "Cambios" (sin seguimiento ni de otro tipo) enumerados en ninguna de las ramas, por lo que las otras respuestas no funcionaron para mí.
Decidí ir a la línea de comando:
- Haga clic en Sincronizar en ambas ramas.
- Cambie a la rama que desea "fusionar" (maestro en mi caso).
- En Team Explorer en Administrar sucursales , haga Acción -> Abrir línea de comandos .
- En la línea de comando, escribe
git merge BRANCH_NAME
. (mi rama de trabajo / fusionar "desde") - Ahora está disponible el botón Resolver el conflicto .
Si los conflictos durante la extracción son sobre charaters de final de línea:
git config --global core.autocrlf false
Eso debería evitar cualquier conversión eol automática.
Puedes ver más en " ¿Por qué git piensa que cada línea de un archivo intacto ha cambiado? " Cómo detectar esa situación en el árbol de trabajo ( git diff --word-diff-regex=.
).
Tuve el mismo problema. Resultó que tenía un archivo sin seguimiento que necesitaba ser incluido. Por lo tanto, compruebe la pestaña Cambios para ver los archivos sin seguimiento.