简体   繁体   English

Visual Studio Team Explorer-GIT:自动忽略新文件

[英]Visual Studio Team Explorer - GIT: Automatically ignoring new files

Whenever I create a new file such as a class file (.cs), the file is automatically ignored by GIT (although still included in the project). 每当我创建新文件(例如类文件(.cs))时,GIT都会自动忽略该文件(尽管该文件仍包含在项目中)。 Is it something with my .gitignore file or some Visual Studio setting? 我的.gitignore文件或某些Visual Studio设置是否有问题? A bug? 有毛病吗

Interestingly, I have 7 projects under my solution and only 1 project has this behavior. 有趣的是,我的解决方案下有7个项目,只有1个项目具有此行为。

Why do I think it's ignored and not untracked? 为什么我认为它被忽略而不是未跟踪? Here's the answer: 答案是:

1- Normally Visual Studio will track all new .cs files, that's what it does in all my projects except for this one. 1-通常,Visual Studio会跟踪所有新的.cs文件,这是我在除此项目之外的所有项目中所做的工作。

2- The new file's Version Control Status Icon is a red circle (with a rectangle in the middle), which if hovered over will show the word "Ignored". 2-新文件的版本控制状态图标是一个红色的圆圈(中间有一个矩形),如果将其悬停将显示单词“ Ignored”。 In addition, if I right click on the file I can see the option "Add Ignored File to Source Control." 另外,如果我右键单击该文件,则可以看到“将忽略的文件添加到源代码管理”选项。

Here's the .gitignore file (on the same folder as that of the .git folder): 这是.gitignore文件(与.git文件夹位于同一文件夹中):

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# 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/
.vscode/
# 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

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json

*_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
*.VC.db
*.VC.VC.opendb

# 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

# Visual Studio code coverage results
*.coverage
*.coveragexml

# 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

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# 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 ignorable 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
*.jfm
*.pfx
*.publishsettings
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
*.ndf

# 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
node_modules/

# Typescript v1 declaration files
typings/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# 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

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

Eureka!!. 尤里卡! My project name was matching the pattern *.sap on the .gitignore file, so all new files on that project would automatically be ignored. 我的项目名称与.gitignore文件上的* .sap模式匹配,因此该项目上的所有新文件都将自动被忽略。 I removed the *.sap pattern from the .gitignore file and now everything works as expected. 我从.gitignore文件中删除了* .sap模式,现在一切正常。

I tested your .gitignore file locally, and it works fine. 我在本地测试了.gitignore文件,它工作正常。 My best guess is that you need to stage your files. 我最好的猜测是您需要暂存文件。 I think you are confusing ignored files with untracked files. 我认为您正在将忽略的文件与未跟踪的文件混淆。

Git is seperated into three "directories". Git分为三个“目录”。 When you "track" a file it means that changes between these three directories are kept. 当您“跟踪”文件时,这意味着将保留这三个目录之间的更改。 Ignored files are not tracked. 忽略的文件不会被跟踪。

Working Directory The working directory is basically what is on your hard drive. 工作目录工作目录基本上是硬盘驱动器上的目录。 Git will track differences on files and folders between the working directory and the staging area. Git将跟踪工作目录和暂存区之间文件和文件夹上的差异。 Everything that is untracked is in the working directory. 所有未跟踪的内容都在工作目录中。 And every change to a tracked file is contained in the working directory. 对跟踪文件的每次更改都包含在工作目录中。

Staging area Whenever you "stage" something (by using git add ) you stage the changes. 暂存区域每当您“ 暂存 ”某些东西(使用git add )时,都git add更改。 This means that you copy the changes from the working directory to the staging area. 这意味着您将更改从工作目录复制到临时区域。 When you stage a file or folder, the files are kept in the working directory (ie the harddrive), but copied to the staging area as well. 在暂存文件或文件夹时,文件会保留在工作目录(即硬盘驱动器)中,但也会复制到暂存区域。

The staging area a sort of middle ground between a commit and an untracked file. 暂存区是提交和未跟踪文件之间的中间地带。 You need to stage your files before you can commit them. 您需要先暂存文件,然后才能提交它们。

Local Branch When you commit something you take whatever is currently staged , and make a commit , and append that commit to the current branch. 本地分支当您提交某项内容时,您将采用当前已暂存的内容 ,然后进行提交 ,然后将该提交追加到当前分支中。 This will also remove the changeset from the stagin area. 这还将从备用区中删除变更集。

It happens form time to time. 它不时发生。 Just close and reopen Visual Studio. 只需关闭并重新打开Visual Studio。

Because of this inconsistency (I think it's a bug) I also look for untracked files in another "visual" git app (SourceTree) to make sure that nothing is left behind inside some directory. 由于存在这种不一致(我认为这是一个错误),因此我还在另一个“可视” git应用程序(SourceTree)中查找未跟踪的文件,以确保某个目录内没有任何残留。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Visual Studio 2013团队资源管理器/ Git集成缺少文件 - Visual Studio 2013 Team Explorer/Git integration missing files 更改 Visual Studio Team Explorer 的 GIT 帐户 - Change GIT account of Visual Studio Team Explorer Git - 在 Team Explorer Visual Studio 上撤消提交 - Git - Undo a commit on Team Explorer Visual Studio Visual Studio Team Explorer - 查看 Git 命令 - Visual Studio Team Explorer - View Git Commands Visual Studio Team Explorer失去了Visual Studio Online的Git授权 - Visual Studio Team Explorer lost Git authorization for Visual Studio Online 如何在Visual Studio团队资源管理器中一次性接受多个文件中的Git分支合并更改? - How do I accept Git branch merge changes in multiple files in one go in Visual Studio Team Explorer? 团队资源管理器+ Visual Studio Online + Git不同步 - Team Explorer + Visual Studio Online + Git out of sync 是否可以恢复在 Visual Studio -> Team Explorer -> Git 中所做的撤消更改? - Is it possible to revert the undo changes done in Visual Studio -> Team Explorer -> Git? 在Team Explorer中为Visual Studio 2013选择GIT MERGE的选项在哪里? - Where is the option to do a GIT MERGE in Team Explorer for Visual Studio 2013? 命令行中的Visual Studio Team Explorer和git显示不同的状态 - Visual Studio Team Explorer and git in command line shows different status
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM