詳解Visual Studio使用Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件
前言:
作為一個(gè).NET開發(fā)者而已,有著宇宙最強(qiáng)IDE:Visual Studio加持,讓我們的開發(fā)效率得到了更好的提升。我們不需要擔(dān)心環(huán)境變量的配置和其他代碼管理工具,因?yàn)閂S有豐富的拓展工具。廢話不多說,直接進(jìn)入正題。我們?nèi)粘T谑褂肰S開發(fā)相關(guān)的.NET項(xiàng)目時(shí),經(jīng)常會(huì)發(fā)現(xiàn)剛拉取下拉的代碼什么都沒有改動(dòng),就是運(yùn)行了一下就會(huì)產(chǎn)生一些需要提交的文件,比如說最常見的bin/Debug, bin/Release,obj/Debug,obj/Release文件。但是我不想把這些文件提交到遠(yuǎn)程的git代碼遠(yuǎn)程倉(cāng)庫(kù)中去,其實(shí)這個(gè)很簡(jiǎn)單只需要我們?cè)诔醮蝿?chuàng)建項(xiàng)目的時(shí)候在項(xiàng)目目錄下新增一個(gè)忽略文本文件(.gitignore),然后在使用git推送到遠(yuǎn)程倉(cāng)庫(kù)中就好了。
需要忽略提交的文件:
配置.gitignore忽略文件,忽略不需要提交的文件:
添加Visual Studio的.gitgnore模板到項(xiàng)目中:
以下是一個(gè).NET/.NET Core相關(guān)項(xiàng)目的忽略文件模板只要是使用VisualStudio開發(fā)的項(xiàng)目都可以使用:
gitnore忽略文件模板來源:https://github.com/github/gitignore/blob/master/VisualStudio.gitignore,該項(xiàng)目中有眾多的編程語(yǔ)言或IDE相關(guān).gitgnore配置,可以下載下來直接使用。
## 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 *.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 *.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 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/ # 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
gitignore忽略規(guī)則:
語(yǔ)法:
- 以”#”號(hào)開頭表示注釋;
- 以斜杠“/”開頭表示目錄;
- 以星號(hào)“*”通配多個(gè)字符;
- 以問號(hào)“?”通配單個(gè)字符
- 以方括號(hào)“[]”包含單個(gè)字符的匹配列表;
- 以嘆號(hào)“!”表示不忽略(跟蹤)匹配到的文件或目錄;
此外,git 對(duì)于 .ignore 配置文件是按行從上到下進(jìn)行規(guī)則匹配的,意味著如果前面的規(guī)則匹配的范圍更大,則后面的規(guī)則將不會(huì)生效;
# 此為注釋 – 將被 Git 忽略 *.a # 忽略所有 .a 結(jié)尾的文件 !lib.a # 但 lib.a 除外 /TODO # 僅僅忽略項(xiàng)目根目錄下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目錄下的所有文件 doc/*.txt # 會(huì)忽略 doc/notes.txt 但不包括 doc/server/arch.txt
該忽略規(guī)則參考地址:https://blog.csdn.net/sundna/article/details/90749495
處理已提交到遠(yuǎn)程倉(cāng)庫(kù)中的文件:
我們可能在開發(fā)的時(shí)候可能一時(shí)沒有注意添加忽略文件配置(gitignore),把這些文件推送到遠(yuǎn)程倉(cāng)庫(kù)中,我們有以下兩種做法解決:
1、把本地這些文件刪除再提交到遠(yuǎn)端(前提是這些文件是環(huán)境變量文件,假如是無(wú)法自動(dòng)生成的不推薦)。
2、使用以下git 命令:
//當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件, 但本地又需要使用, 只是不希望這個(gè)文件被版本控制, 可以使用 git rm -r --cached file_path(文件路徑) //把file_path文件在當(dāng)前分支的暫存區(qū)中刪除<br>git add . //提交當(dāng)前操作本地暫存區(qū) git commit -m 'delete remote somefile' //提交到本地git倉(cāng)庫(kù) git push //提交到遠(yuǎn)程代碼庫(kù)
如我需要移除某個(gè)項(xiàng)目中的obj文件然后提交:
該文件路徑為:D:\開發(fā)學(xué)習(xí)-Master\我的訓(xùn)練營(yíng)\DailyLearning\工作&學(xué)習(xí).Net訓(xùn)練營(yíng)\Application\obj
輸入以下命令移除相關(guān)不需要跟蹤的文件:
git rm -r --cached Application/obj
執(zhí)行成功后,文件將從該分支中刪除(本地還會(huì)存在),最后我們提交到遠(yuǎn)程倉(cāng)庫(kù)即可。
到此這篇關(guān)于詳解Visual Studio使用Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件的文章就介紹到這了,更多相關(guān)Git忽略不想上傳到遠(yuǎn)程倉(cāng)庫(kù)的文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
判斷Email地址是否正確的幾個(gè)函數(shù)(asp/php/javascript)
今天總結(jié)了幾個(gè)判斷Email地址的函數(shù),和大家分享一下2010-08-08關(guān)于VSCode 裝好ESLint 插件 import 報(bào)黃線的問題
這篇文章主要介紹了VSCode 裝好ESLint 插件 import 報(bào)黃線的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Git如何實(shí)現(xiàn)checkout遠(yuǎn)程tag
這篇文章主要介紹了Git如何實(shí)現(xiàn)checkout遠(yuǎn)程tag,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09web高性能開發(fā)系列隨筆 BearRui(AK-47)版
在BlogJava里寫了一些關(guān)于高性能WEB開發(fā)的隨筆,因?yàn)槎际歉岸思夹g(shù)相關(guān)(html,http,js,css等),大家可以參考下。非常值得參考。2010-05-05在Infopath中實(shí)現(xiàn)數(shù)據(jù)有效性驗(yàn)證的三種方法
Infopath是微軟Office辦公軟件家族中的成員之一,它主要的功能是面向客戶端收集XML數(shù)據(jù),并按照預(yù)期定義的格式生成XML文件,它以可視化表單的形式收集數(shù)據(jù),并且支持C#編程接口以及外部數(shù)據(jù)源等。2010-06-06詳解git使用小結(jié)(本地分支與遠(yuǎn)程分支、git命令)
這篇文章主要介紹了git使用小結(jié)(本地分支與遠(yuǎn)程分支、git命令),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08