Extensión de Git para Visual Studio

Soy nuevo en git y estoy usando la extensión git para Visual Studio. Cuando otros miembros del equipo realizan cambios, a veces, cuando bash sincronizar el proyecto, puedo ver las confirmaciones entrantes, pero el proyecto no está sincronizado y aparece el siguiente error.

Se generó un error en libgit2. Categoría = 21 (MergeConflict). 2 cambios no confirmados se sobrescribirán mediante fusión

el problema es que ¿cómo puedo unir conflictos? No hay window para la fusión de conflictos después de que se ha producido este error y también he confirmado todos mis cambios.

El post trata de cambios no confirmados, no conflictos de fusión reales. Aprende a NO fusionar o hacer cosas de fantasía con cambios no confirmados. Antes de una operación, comprometa sus cambios o destrúyalos. Incluso si un conflicto como ese no está marcado, es probable que no sea lo que realmente quería hacer.

En GE hay una opción para mostrar los cambios en el tree de trabajo (ignore la advertencia "lenta" a less que trabaje en un repository gigante y regularmente tenga cientos de files modificados) y acostúmbrese a verlo en navegar. Además, el button "Confirmar" muestra un recuento, que será 0 cuando incite una combinación.

Si en el medio de su trabajo desea sincronizar (y pensó de nuevo y tiene una muy buena razón, honesto), use el stash , luego extraiga (o rebase), y después de que termine, suelte su trabajo.

Los conflictos de fusión reales se manejan mejor con herramientas de combinación visual, puedes probar la diferencia de topos, o la herramienta favorita de Sourcegear. Kdiff3 que se envía con GE es bueno para mirar pero no tan bueno para resolverlo, a less que todo lo que necesita es elegir candidatos literalmente. GE te pone en resolución de conflictos de forma automática.

La respuesta anterior no siempre es verdad. Puede recibir este post incluso cuando no tenga ningún cambio no confirmado. Mi compañero de trabajo y yo solucionamos un error y nos comprometimos con nuestros repositorys locales, y me gusta que sea mejor. Nunca revisé mi cambio, pero lo deshice y saqué su cambio.

Mientras tanto, él había "revertido" su cambio (sin hablar conmigo) y luego me pidió que empujara mi cambio. Le dije que había lanzado mi cambio, por lo que revirtió su reversión (terminando con dos commits).

Cuando fui a presionar un cambio diferente (comprometido con mi repository local sin cambios no comprometidos), presionó tanto la reversión de su cambio como la reversión, y recibí el post anterior.

La solución fue bastante simple, utilicé el menu Acciones para abrir el símbolo del sistema y emití un git pull allí. Eso funcionó correctamente y creó un commit de fusión para mí con su reversión y reversión.

Sí, él podría haber ( insert incomprehensible git-gibberish here ), pero no lo hizo, así que chúpalo nerds. Funciona, estamos avanzando.

Aquí hay un elemento de retroalimentación VS con respecto a este problema: http://connect.microsoft.com/VisualStudio/feedbackdetail/view/955248/git-merge-fails-claiming-uncommited-change-would-be-overwritten-by-merge-ssh -mergeconflict

A veces, la git pull no es suficiente … (si obtiene "Ya está actualizado").

Puede ser necesario hacer la fusión desde la línea de command:

En Visual Studio (2015, Actualización 3 para mí) en Team Explorer , Branches , Actions , Open In Command Prompt , a continuación:

 git merge NameOfBranchBeingMergedFrom 

Luego cierre esa window y haga el rest (Conflictos de fusión, etc.) de VS