上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Visual Studio使用Git忽略不想上传到远程仓库的文件

guduadmin231月前

前言

作为一个.NET开发者而言,有着宇宙最强IDE:Visual Studio加持,让我们的开发效率得到了更好的提升。我们不需要担心环境变量的配置和其他代码管理工具,因为Visual Studio有着众多的拓展工具。废话不多说,直接进入正题。我们日常在使用Visual Studio开发相关的.NET项目时,经常会发现刚拉取下拉的代码什么都没有改动,就是运行了一下就会产生一些需要提交的文件,比如说最常见的bin/Debug, bin/Release,obj/Debug,obj/Release文件。但是我不想把这些文件提交到远程的git代码远程仓库中去,其实这个很简单只需要我们在初次创建项目的时候在项目目录下新增一个忽略文本文件(.gitignore),然后在使用git推送到远程仓库中就好了。

需要忽略提交的文件

Visual Studio使用Git忽略不想上传到远程仓库的文件,图片,第1张

配置.gitignore忽略文件,忽略不需要提交的文件

添加Visual Studio的.gitgnore模板到项目中

Visual Studio使用Git忽略不想上传到远程仓库的文件,图片,第2张

C#/.NET/.NET Core相关项目的忽略文件模板(VisualStudio.gitignore)

只要是使用VisualStudio开发的项目都可以使用该模板。

  • VisualStudio.gitignore模板GitHub开源地址(该项目中有众多的编程语言或IDE相关.gitgnore配置,可以下载下来直接使用):https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

    ## 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/main/VisualStudio.gitignore
    # User-specific files
    *.rsuser
    *.suo
    *.user
    *.userosscache
    *.sln.docstates
    # User-specific files (MonoDevelop/Xamarin Studio)
    *.userprefs
    # Mono auto generated files
    mono_crash.*
    # Build results
    [Dd]ebug/
    [Dd]ebugPublic/
    [Rr]elease/
    [Rr]eleases/
    x64/
    x86/
    [Ww][Ii][Nn]32/
    [Aa][Rr][Mm]/
    [Aa][Rr][Mm]64/
    bld/
    [Bb]in/
    [Oo]bj/
    [Ll]og/
    [Ll]ogs/
    # Visual Studio 2015/2017 cache/options directory
    .vs/
    # Uncomment if you have tasks that create the project's static files in wwwroot
    #wwwroot/
    # Visual Studio 2017 auto generated files
    Generated\ Files/
    # MSTest test Results
    [Tt]est[Rr]esult*/
    [Bb]uild[Ll]og.*
    # NUnit
    *.VisualState.xml
    TestResult.xml
    nunit-*.xml
    # Build Results of an ATL Project
    [Dd]ebugPS/
    [Rr]eleasePS/
    dlldata.c
    # Benchmark Results
    BenchmarkDotNet.Artifacts/
    # .NET Core
    project.lock.json
    project.fragment.lock.json
    artifacts/
    # ASP.NET Scaffolding
    ScaffoldingReadMe.txt
    # StyleCop
    StyleCopReport.xml
    # Files built by Visual Studio
    *_i.c
    *_p.c
    *_h.h
    *.ilk
    *.meta
    *.obj
    *.iobj
    *.pch
    *.pdb
    *.ipdb
    *.pgc
    *.pgd
    *.rsp
    *.sbr
    *.tlb
    *.tli
    *.tlh
    *.tmp
    *.tmp_proj
    *_wpftmp.csproj
    *.log
    *.tlog
    *.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
    # Visual Studio Trace Files
    *.e2e
    # TFS 2012 Local Workspace
    $tf/
    # Guidance Automation Toolkit
    *.gpState
    # ReSharper is a .NET coding add-in
    _ReSharper*/
    *.[Rr]e[Ss]harper
    *.DotSettings.user
    # TeamCity is a build add-in
    _TeamCity*
    # DotCover is a Code Coverage Tool
    *.dotCover
    # AxoCover is a Code Coverage Tool
    .axoCover/*
    !.axoCover/settings.json
    # Coverlet is a free, cross platform Code Coverage Tool
    coverage*.json
    coverage*.xml
    coverage*.info
    # 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
    # Note: 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
    # NuGet Symbol Packages
    *.snupkg
    # The packages folder can be ignored because of Package Restore
    **/[Pp]ackages/*
    # except build/, which is used as an MSBuild target.
    !**/[Pp]ackages/build/
    # Uncomment if necessary however generally it will be regenerated when needed
    #!**/[Pp]ackages/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
    *.appx
    *.appxbundle
    *.appxupload
    # 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
    # Including strong name files can present a security risk
    # (https://github.com/github/gitignore/pull/2483#issue-259490424)
    #*.snk
    # 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
    ServiceFabricBackup/
    *.rptproj.bak
    # SQL Server files
    *.mdf
    *.ldf
    *.ndf
    # Business Intelligence projects
    *.rdl.data
    *.bim.layout
    *.bim_*.settings
    *.rptproj.rsuser
    *- [Bb]ackup.rdl
    *- [Bb]ackup ([0-9]).rdl
    *- [Bb]ackup ([0-9][0-9]).rdl
    # Microsoft Fakes
    FakesAssemblies/
    # GhostDoc plugin setting file
    *.GhostDoc.xml
    # Node.js Tools for Visual Studio
    .ntvs_analysis.dat
    node_modules/
    # 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 6 auto-generated project file (contains which files were open etc.)
    *.vbp
    # Visual Studio 6 workspace and project file (working project files containing files to include in project)
    *.dsw
    *.dsp
    # Visual Studio 6 technical files
    *.ncb
    *.aps
    # 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/
    # CodeRush personal settings
    .cr/personal
    # Python Tools for Visual Studio (PTVS)
    __pycache__/
    *.pyc
    # Cake - Uncomment if you are using it
    # tools/**
    # !tools/packages.config
    # Tabs Studio
    *.tss
    # Telerik's JustMock configuration file
    *.jmconfig
    # BizTalk build output
    *.btp.cs
    *.btm.cs
    *.odx.cs
    *.xsd.cs
    # OpenCover UI analysis results
    OpenCover/
    # Azure Stream Analytics local run output
    ASALocalRun/
    # MSBuild Binary and Structured Log
    *.binlog
    # NVidia Nsight GPU debugger configuration file
    *.nvuser
    # MFractors (Xamarin productivity tool) working folder
    .mfractor/
    # Local History for Visual Studio
    .localhistory/
    # Visual Studio History (VSHistory) files
    .vshistory/
    # BeatPulse healthcheck temp database
    healthchecksdb
    # Backup folder for Package Reference Convert tool in Visual Studio 2017
    MigrationBackup/
    # Ionide (cross platform F# VS Code tools) working folder
    .ionide/
    # Fody - auto-generated XML schema
    FodyWeavers.xsd
    # VS Code files for those working on multiple tools
    .vscode/*
    !.vscode/settings.json
    !.vscode/tasks.json
    !.vscode/launch.json
    !.vscode/extensions.json
    *.code-workspace
    # Local History for Visual Studio Code
    .history/
    # Windows Installer files from build outputs
    *.cab
    *.msi
    *.msix
    *.msm
    *.msp
    # JetBrains Rider
    *.sln.iml
    

    .gitignore忽略规则

    基本语法:

    • 以”#”号开头表示注释;

    • 以斜杠“/”开头表示目录;

    • 以星号“*”通配多个字符;

    • 以问号“?”通配单个字符;

    • 以方括号“[]”包含单个字符的匹配列表;

    • 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

    • 此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

      代码示例

      # 此为注释 – 将被 Git 忽略
        
      *.a       # 忽略所有 .a 结尾的文件
      !lib.a    # 但 lib.a 除外
      /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
      build/    # 忽略 build/ 目录下的所有文件
      doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
      

      处理已提交到远程仓库中的文件

      可能在开发的时候忘记添加忽略文件配置(gitignore),把这些文件推送到远程仓库中,我们有以下两种做法解决:

      • 1、把本地这些文件删除再提交到远端(前提是这些文件是环境变量文件,假如是无法自动生成的不推荐)。

      • 2、使用以下git 命令:

        //当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
        git rm -r --cached file_path(文件路径)  //把file_path文件在当前分支的暂存区中删除
        git add .                               //提交当前操作本地暂存区
        git commit -m 'delete remote somefile'  //提交到本地git仓库
        git push                                //提交到远程代码库
        

        如我需要移除某个项目中的obj文件然后提交:

        该文件路径为:D:\开发学习-Master\我的训练营\DailyLearning\工作&学习.Net训练营\Application\obj

        输入以下命令移除相关不需要跟踪的文件:

        git rm -r --cached Application/obj
        

        执行成功后,文件将从该分支中删除(本地还会存在),最后我们提交到远程仓库即可。

        Visual Studio使用Git忽略不想上传到远程仓库的文件,图片,第3张

        Visual Studio使用Git忽略不想上传到远程仓库的文件,图片,第4张

网友评论

搜索
最新文章
热门文章
热门标签
 
 周公解梦梦到死人了  女人梦见自己又生了个儿子  1965年属什么的生肖属相