git 与 svn 忽略提交某些文件夹


Git 版本控制屏蔽某些文件或文件夹

https://blog.csdn.net/michel4liu/article/details/79531484

场景:
IDE在编译过程中经常出现 debug release下的文件,这些文件每份代码生成或重新生成都会有变化,git就会认为是更改项,需要上传,在协作场景中如果大家都上传这些文件导致无数垃圾文件冲突,解决费时费力。

GIT已经给出解决办法 .gitignore
现在给出两个网站,这两个基本涵盖了所有IDE的.gitignore 只要找对就可以解决问题。
(注意:NET C# 对应的是 VisualStudio.gitignore 我就以为C#没有呢。看了一会才找到。)
https://gitee.com/kd_cmad/Common_gitignore
https://github.com/github/gitignore/

当然以上的不排除有特殊需求,特殊需求需要自己动手扩展,下面给出语法≈正则表达式

以下内容出自 https://segmentfault.com/a/1190000005656894

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

总结:仓库刚建立时就要创建此文件,不然刚开始协作就会出现冲突,如果已经冲突,简单点方式删除仓库重新创建,首先 创建.gitignore 然后在协作.
因windows本身不支持空文件名的文件存在 如 .gitignore 就是 空文件名 .gitignore是扩展名。创建空文件名的方法自行百度吧,因这里面有大量屏蔽文件 尽量找一个类似的修改是最好的选择。

 

svn ignore忽略文件

https://blog.csdn.net/qq_16979575/article/details/80657519

 

今天试了下svn的ignore功能,感觉比git用着别扭很多。git的话直接添加个.ignore文件后就可以忽略掉版本控制。但是svn感觉不能。

这里我用svn 拉下来一个版本(空文件夹test)。

 

然后用idea打开后该文件夹,生成.idea文件夹,现在我想把这个文件夹下面的内容忽略掉。

 

我这个时候使用svn的commit操作的话,会出现

 

然而我并不想这些东西出现。下面开始实验(还是切下中文版吧)

1.根据网上的说法,到TortoiseSVN>属性(properties)下面添加svn:ignore内容

 

点击确定后再执行commit变成这样

 

双击后发现就是刚刚编辑的properties内容

 

于是我提交了上去。

接下来去另外一个地方再拉下来一个test空文件夹,然后再用idea打开。此时生成了.idea文件,但是commit却没有出现内容

 

 

好吧,有点和git感觉相像的内容了。

结论:

就相当于把git的.ignore文件给上传上去了。因为在git中会在.ignore忽略掉.ignore文件,所以一般使用ignore都在本地。但是svn由于不知道.ignore的文件名,所以必须上传到svn服务器中。

===========分割线====================

下面讨论一下子文件夹能否直接被ignore掉。我们再刚刚的test文件夹里面建一个new文件夹。然后用idea打开new文件夹,在new下面生成.idea文件夹,然后commit

 

发现子文件夹里面你的.idea文件夹依旧会被提交。

这时候我们修改ignore规则,里面设置递归属性。再次进行提交后。

 

 

勾选提交后,去别的地方再checkout一个分支下来,发现new下面没有.idea文件夹。

因此感觉和git的区别是,每一个文件夹都算是一个版本库。这里设置了ignore递归规则,相当于把new这个repertory下面设置了忽略。也就可以直接把new作为一个版本给checkout到本地



 

备注: svn设置的话 必须处于正常【绿色】无需提交的状态

 

posted @   夏秋初  阅读(1203)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示