Gitignore no ignorará la carpeta .vs

6 minutos de lectura

avatar de usuario de user5015546
usuario5015546

Probamos todo tipo de entradas explícitas y comodines en .gitignore, sin embargo, los elementos ocultos .vs La carpeta como parte de Visual Studio sigue comprometiéndose.

Dado que esas son configuraciones individuales para desarrolladores, obviamente siempre son diferentes y aparecen en un git diff.

¿Cómo puedo resolverlo para ignorar todo en el nivel superior? .vs carpeta en el repositorio?

  • ¿Puedes mostrar el .gitignore archivo de su proyecto?

    – nwinkler

    16 de junio de 2015 a las 13:13

  • no usar git add ...?

    – bobobobo

    21 de septiembre de 2021 a las 0:56

Avatar de usuario de Bravo Yeung
bravo yung

Siga los pasos a continuación, el problema se resolverá.

Paso 1: agregue el siguiente contenido al archivo .gitignore.

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# DNX
project.lock.json
artifacts/

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings 
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs

# Since there are multiple workflows, uncomment next line to ignore bower_components 
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

Paso 2: asegúrese de que la operación anterior surta efecto

Si el problema persiste, es porque la configuración en .gitignore solo puede ignorar los archivos que fueron originalmente no rastreado. Si algunos archivos ya se han incluido en el sistema de control de versiones, entonces modificando .gitignore es inválido. Para resolver este problema por completo, debe abrir Git Bash ejecutando los siguientes comandos en la carpeta raíz del repositorio.

$ git rm -r --cached .
$ git add .
$ git commit -m 'Update .gitignore'

Por supuesto, también puedes usar Consola del administrador de paquetes de Visual Studio para hacer las cosas en Paso 2.
Usar consola PM

Entonces el problema se resolverá por completo.

  • no creo que quieras . como argumento para git rm ¡porque eso borrará todo! Supongo que solo desea eliminar lo que ahora se excluirá, por ejemplo, el .vs carpeta.

    – ChrisW

    11 de noviembre de 2020 a las 11:49

Si están apareciendo en un git diff, entonces los archivos ya están siendo rastreados, mientras que .gitignore solo afecta a los archivos que no están rastreados. Deberá eliminar los archivos del control de código fuente con git rm --cachedy entonces .gitignore los afectará.

Tenga en cuenta que cuando haga esto, los archivos de otros desarrolladores se eliminarán localmente cuando hagan su siguiente git pull. Entonces, antes de hacerlo, es posible que deseen hacer una copia de seguridad de esos archivos.

En nuestro caso, el .vs El directorio se había agregado al control de código fuente cuando inicialicé el repositorio. Así, la línea en .gitignore:

/.vs

no hice nada hasta que eliminé el directorio y revisé los cambios (similar a lo que dice TPoschel arriba, pero con la diferencia de que verificar el directorio eliminado es lo que lo arregló, ya que ya había verificado en el .gitignore archivo).

  • Este es el enfoque correcto. La respuesta dada por @Bravo Yeung eliminó todo de mi repositorio local. Necesito volver a clonar todo el proyecto. Casi me da un infarto por eso. :PAG

    – Sandeep Ingale

    18 de noviembre de 2020 a las 18:57

Funciona de esta manera para mí: abra su archivo git ignore y agregue lo siguiente a la lista:

.vs/

Avatar de usuario de ΩmegaMan
ΩmegaMan

Después de empujar con .GitIgnore válido en el lugar Pasos de resolución para remediar

Esta respuesta es similar a las anteriores, pero detalla los pasos reales cuando un válido El archivo .gitignore está en su lugar, todavía los artículos han sido registrados en la sucursal y aparecen en el repositorio de origen.

  1. Si el .vs el directorio ha sido ingresado, verifique que nada en la rama actual haya sido preparado desde el directorio. Si es así, desactívelos.
  2. Ir al nivel del directorio que tiene .vs.
  3. Ejecute este comando: git rm --cached -r .vs.
  4. En este punto, debería ver los archivos en el directorio .vs como programados para su eliminación.
  5. Preparar y crear la confirmación.
  6. Empuje la confirmación al origen.

Avatar de usuario de Yoh Deadfall
Yoh Deadfall

Me encontré con este problema y encontré una manera fácil de solucionar el problema de “git rastreando los archivos”.

  1. Haga una copia de seguridad de todos los archivos relevantes en su carpeta git en su PC en una ubicación separada (normalmente algo como c:/user/source/repos si no especificó otro lugarc).

  2. Elimine todos los archivos relevantes en la carpeta git.

  3. Abra Visual Studio y envíe esta eliminación al servidor.

  4. Pegue todos los archivos nuevamente.

  5. Empuje esto al servidor.

Esta debería ser una manera fácil de deshacerse de todos esos archivos temporales y cualquier otra cosa que haya especificado en su .gitignore para su carpeta git en línea que ya está rastreando.

Avatar de usuario de TPoschel
poschel

Me encontré con este problema antes de enviar algo a mi repositorio. Pensé erróneamente que solo tener el archivo .gitignore en el directorio evitaría que VS reconociera los archivos como ‘Cambios’. Primero debe confirmar el archivo .gitignore antes de que git comience a ignorar los archivos especificados en él.

¿Ha sido útil esta solución?