pending example changes visual-studio-2015 vsts azure-devops git-pull git-checkout git-revert

visual-studio-2015 - changes - revert git example



Mensaje de error de Visual Studio 2015 Git "No se puede extraer/cambiar porque hay cambios no confirmados" (12)

Estoy teniendo dificultades para hacer un tirón desde el origin . Sigo recibiendo:

"No se puede extraer porque hay cambios no confirmados. Confirme o deshaga los cambios antes de volver a extraer. Consulte la ventana Salida para más detalles".

Esto también se aplica al cambio de ramas. Recibo un mensaje similar, pero esto no siempre sucede.

Estoy usando Visual Studio 2015 Update 1 y Visual Studio Team Services Git. En mi máquina tengo una sucursal master local y sucursales de desarrollo. Cada vez que cambio a master y luego hago un pull, aparece el mensaje de error. He recurrido a hacer un alijo y colocar alijo (línea de comando) y a veces uso TortoiseGit para hacer el tirón y funciona.

Lo extraño es que incluso si trato de revertir (en los archivos no confirmados) usando TortoiseGit, muestra que se revirtió con éxito (ya he intentado deshacer Visual Studio, no pasa nada). Intentando tirar de nuevo, sigue siendo el mismo problema. Los archivos no confirmados estarán allí y, a veces, cuando hago un git status , dice que no hay nada que confirmar.

Solo una nota: esto puede suceder incluso después de cambiar de una rama a master . En este caso, no hay forma de que haya cambios no confirmados, porque en primer lugar no habría podido cambiar.

Todavía soy nuevo en Git, pero me gustaría saber si hay una mejor manera de resolver esto, ya que me gustaría usar un entorno en lugar de cambiar entre diferentes entornos para cada tarea; Es más fácil para mí hacer todo, desde Visual Studio. Ya he leído sobre:

TFS / GIT en VS No se puede cambiar a maestro porque hay cambios no confirmados

ACTUALIZAR

Parece que este problema tiene que ver con los finales de línea.

Al hacer un git diff -R , puede ver que se ha agregado un final de línea, "^ M", y es diferente. Eliminar el * text=auto en gitattributes (luego verificar los cambios) y volver a colocarlo de nuevo para que los gitattributes no indiquen un cambio de sí mismo que deba confirmarse parece ayudar, no habrá ningún cambio.


En Visual Studio abra la Output Window y cambie Show output from a Source Control - git , git le informará sobre lo que impide que se arrastre. Por supuesto, una de las causas más comunes puede ser algo como esto:

The pull would overwrite your local changes to the following 44 files: <Here you can probably see a list of 44 files>

Simplemente significa que se han agregado 44 archivos al repositorio remote que no forman parte del repositorio local . Abra Git Bash y ejecute este comando:

git add *

Esto puede resolver el problema o terminar en un error como este:

$ git add * The following paths are ignored by one of your .gitignore files: TestResults Use -f if you really want to add them.

Si está seguro de agregarlos a la reproducción local , simplemente agréguelos usando git add * -f o elimine los archivos agregados por error del remote .

Espero que esto ayude.


Escriba git status en una línea de comando abierta en ese directorio. Si hay texto rojo y / o verde, ha cambiado algunas cosas y no se ha agregado ni confirmado. Puede revertir los archivos (haciendo git checkout -- <file> ), o agregue y confirme (haciendo git add --all después git commit -m "commit message" ). A continuación, puede consultar las sucursales o cualquier otra cosa que desee hacer.


Este problema generalmente ocurre cuando hay un archivo / cambio que no se ha confirmado localmente, pero se incluye en la acción de extracción.

Por ejemplo, agrega un nuevo archivo "test.txt" desde su carpeta de repositorio Git local directamente (fuera de Visual Studio). Este archivo puede aparecer en la opción "Archivos no rastreados", por lo que cuando confirma cambios, este archivo no se ha rastreado ni confirmado. Y luego otra persona también crea un "test.txt" con la misma ruta y lo compromete y lo empuja. Ahora, cuando realiza una acción de extracción, el archivo "test.txt" se incluye en la acción de extracción y recibirá el mensaje de error que indica que hay cambios no confirmados. Por lo tanto, debe verificar si tiene archivos / cambios que no se han confirmado y confirmarlos antes de extraerlos.


Esto funcionó para mí. Simplemente fui al directorio del proyecto y verifiqué si hay algo allí

git status

Luego realicé un tirón usando

git pull

Luego reinicié Visual Studio 2015 y extraje la rama que estaba causando este error. Esta vez sin problemas. Parece que fue un error en Visual Studio 2015, solo ocurre cuando deshace los cambios antes de realizar nuevos cambios. Este mismo problema no parece existir en Visual Studio 2017.


Esto sucede a veces incluso conmigo. Si está utilizando Visual Studio, hay una manera fácil de aclarar su camino.

Para Visual Studio 2013 y superior, siga las siguientes instrucciones, ya que esto funcionó para mí:

  • Vaya al menú Herramientas Administrador de paquetes NuGet Consola del Administrador de paquetes .
  • Escribe git reset y presiona Enter

Eso es. Git se restablecerá y luego podrá extraer su solicitud fácilmente.

VS2015: Herramientas> Administrador de paquetes Nuget> Consola del administrador de paquetes. Trabajado como un encanto. Gracias.


Estos son los pasos que he seguido:

  1. Consulte la ruta del archivo no confirmado en la ventana de salida
  2. Navegue a esa ruta y elimine ese archivo de la carpeta
  3. Deshaga sus cambios de Team Explorer en Visual Studio para agregarlos nuevamente

Para mí no tuve ningún cambio no confirmado ni ningún archivo sin seguimiento, y Visual Studio 2015 aún presentó la advertencia.

  1. Cierre la solución en Visual Studio, salga de Visual Studio.
  2. Abra Git Bash (o su interfaz de usuario Git favorita)
  3. Navegue a su repositorio (o abra el repositorio con la interfaz de usuario de Git)
  4. git pull (o realiza pull en la interfaz de usuario de Git)
  5. Se produce la fusión (es de esperar que no haya conflictos, como en mi caso), se abre vi (o la herramienta de resolución de fusión predeterminada)
  6. :wq luego presiona ENTER en vi (o calma manejar la herramienta de fusión que apareció opcionalmente) y espero que esto lo resuelva como para mí.
  7. Inicie Visual Studio 2015, abra el proyecto.

Agregué un paso a paso más seguro al ordenar cerrar y abrir la solución y Visual Studio. Esto puede ser demasiado cauteloso, y tal vez una recarga sería suficiente. Este síntoma podría ser un error de las partes de integración de Visual Studio Git, y tal vez se resolverá en el futuro.


Para mí, este problema fue causado por tener dos archivos, "Web.Config" y "web.config". Supongo que esto está bien en Linux / Unix, pero Windows solo puede almacenar uno de ellos localmente. Detecté esto en devops azules explorando los archivos. Eliminé uno de ellos y se resolvió el problema. Supongo que este problema podría ser causado por cualquier archivo.


Para mí, la "Actualización" en la pregunta fue la respuesta. Agregué un archivo .gitattributes en la raíz de mi repositorio e incluí solo lo siguiente, de modo que las terminaciones de línea solo se normalizarían en los casos en que el archivo sea texto.

*.txt text *.html text *.css text *.js text # These files are text and should be normalized (Convert crlf => lf) *.gitattributes text .gitignore text *.md texttesting


Pruebe con estos comandos yendo al directorio de trabajo del proyecto en el símbolo del sistema.

git add -A git commit -m "your message" git fetch origin master git pull origin master git push origin master //To push to the Git system


Tuve este problema en Visual Studio 2017 build 15.5 y lo que me solucionó fue ir a Configuración de Team Explorer → Configuración global y configurar " Podar ramas remotas durante la búsqueda " y " Rebase rama local al tirar " a Verdadero .

http://www.codewrecks.com/blog/index.php/2017/12/23/configure-visual-studio-2017-15-5-for-pull-rebase/

También MS tiene las Instrucciones aquí: https://docs.microsoft.com/en-us/azure/devops/repos/git/git-config?tabs=visual-studio&view=vsts#prune-remote-branches-during-fetch El momento de facepalm es cuando te das cuenta de que "Recomendamos establecer esta opción en True a nivel global". no es la configuración predeterminada en esos elementos.

Otra instancia de este problema ocurre en el caso de que tenga un servidor de compilación separado y la solución reciba actualizaciones frecuentes de NuGet en los compiladores. La primera persona que actualice los paquetes NuGet y sincronice el repositorio no tendrá problemas, pero si alguien más intenta la actualización localmente, antes de realizar una sincronización, aparecerá este mensaje y VS no le permitirá extraer o insertar código. Para evitar este problema, todos deberían tener el hábito de sincronizar antes de realizar actualizaciones locales. Una vez encontrado, la mejor manera que hemos encontrado para resolverlo es guardar cualquier código no confirmado que necesite conservar ( https://marketplace.visualstudio.com/items?itemName=vii.GitStashExtension ), luego restablezca su repositorio al encabezado actual .


Yo tuve este problema también. Una solución fácil fue que seleccioné Confirmar en la solución para ver los archivos no confirmados (o usar fácilmente Team Explorer Cambios ).

Luego deshago cada archivo haciendo clic derecho. Antes, lo probé Deshacer en toda la solución, pero no funcionó correctamente. Por otra parte, utilicé Team Explorer Sync Pull , y funcionó.