SVN、Git设置提交时忽略的文件
在SVN版本控制时,新手经常会遇到这样的问题:
1、整个项目一起提交时会把bin 、 gen 、 .project 一同提交至服务器
2、避免提交编译、本地配置等文件在项目中单独对src、res进行提交,然而整个项目依然成有未提交文件状态
3、由于bin机制是删除其所有内容重新创建编译文件,造成svn冲突、异常
解决办法很简单:
情况一:创建项目初期
直接将bin、gen、.project 等不需要提交和版本统一的文件加入 ignore list
情况二:已经是开发中期、应用中项目
1、已经冲突
将项目clean up 还原最初版本,再update 与svn统一后将其加入 ignore list 再提交
2、普通路径
还原或更新至与svn版本统一后加入 ignore list
在进行了忽略控制后,在myeclipse或windows 界面下的 TortioseSVN 工具可直接对整个项目进行提交,不会影响编译文件等。
P.S.
1)TortioseSVN 工具,右键 add ignore list
2)android项目建议忽略:.settings 、bin、gen、.project
出处:https://mpqi.iteye.com/blog/1431585
=======================================================================================
eclipse中SVN设置
用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,项目编译就会出问题。所以,用eclipse安装了svn插件,不能一股脑把android项目都传上去。
- 1、在eclipse里屏蔽不需要提交的文件
Window -> Preferences --> Team -> Ignored Resources在右侧添加如下文件【bin、 target、m2-target、gen、.classpath、.project】这样在以后提交时,这些都会自动屏蔽掉,不会更新上去。
- 2、在Eclipse中设置忽略的.svn文件夹,此操作仅对此项目有效。
右键 - Properties - Java Build Path - Source - xxx/src - Excluded - 点右边的 Edit,在Exclusion patterns中加入【**/.svn/**】,让Eclipse忽略.svn目录即可。
- 3、在Eclipse的导航视图中,选中尚未加入版本控制的文件或目录,右键 --> Team --> 添加至SVN:ignore 。此操作仅对此项目有效。
SVN客户端中设置
- 1、在资源管理器中,右键一个未加入版本控制文件或目录,选择TortoiseSVN →Add to Ignore List,会出现一个子菜单,允许你仅选择忽略该文件或者忽略所有具有相同后缀的文件。
如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN →从忽略列表删除。
- 2、通过SVN客户端设置全局忽略列表,它会作用到所有的项目。
右键 --> TortoiseSVN --> 设置 --> 常规设置 --> 在如下输入框中添加
Git客户端创建
一句话:通过开源网站,如github创建库时会自动创建忽略目录文件,你神马都不需要管!
1、在当前工作目录中创建【.gitignore】文件指在当前工作目录的根目录中,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录,只对当前目录有效。注意:在创建或编辑这个文件之前,一定要保证要忽略的文件还没有添加到git索引中。如果添加.gitignore文件前,要忽略的文件已经存在,可使用命令【git rm --忽略文件名】将要忽略的文件从索引中删除。.gitignore文件的格式规范:
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式:
- 星号(*)匹配零个或多个任意字符
- [] 匹配任何一个列在方括号中的字符(如[abc]要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
- 问号(?)只匹配一个任意字符
- 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(如[0-9]表示匹配所有 0 到 9 的数字)
补充说明:
- 工作目录的每一层下级目录都可以有一个.gitignore文件,以说明当前目录下需要被git忽略的文件或目录
- .gitignore文件应该被提交到共享库中,以便能被协作者共享忽略规则
- 通常的做法是,在创建新的Android工程前,会先在github或git@osc创建一个库,这时选择自动创建忽略目录文件,这样以后神马都不需要管了!
2、创建一个全局的.gitignore可以通过创建~/.gitignore_global并添加到git全局配置以减少每层目录的规则重复定义。使用命令【git config --global core.excludesfile ~/.gitignore_global】即可3、仅在本地仓库忽略
本地仓库的文件忽略规则可以在【本地仓库/.git/info/exclude】文件中添加。注意,忽略规则不会提交到共享库中,只对本地有效。
Git官方文档
Ignoring files
From time to time, there are files you don't want Git to check in to GitHub. There are a few ways to tell Git which files to ignore.
Create a local .gitignore 推荐使用!
If you create a file in your repository named .gitignore, Git uses it to determine 确定 which files and directories to ignore, before you make a commit.
A .gitignore file should be committed into your repository, in order to share the ignore rules with any other users that clone the repository.
GitHub maintains 维护 an official list of recommended 推荐的官方列表 .gitignore files for many popular operating systems, environments, and languages in the
github/gitignore
public repository.
- In Terminal, navigate to the location of your Git repository.在终端(本地磁盘),导航到到Git库所在位置
- Enter
touch .gitignore
to create a .gitignore file.创建文件If you already have a file checked in, and you want to ignore it, Git will not ignore the file if you add a rule later. In those cases, you must untrack the file first, by running the following command in your terminal:
git rm --cached
Create a global .gitignore 全局的
You can also create a global .gitignore file, which is a list of rules for ignoring files in every Git repositories on your computer 电脑中的所有库. For example, you might create the file at ~/.gitignore_global and add some rules to it.
- Open Terminal.
- Run the following command in your terminal:
git config --global core.excludesfile ~/.gitignore_global
Explicit repository excludes 明确的库排除
If you don't want to create a .gitignore file to share with others,不想共享忽略文件(仅仅想在自己本地库中忽略) you can create rules that are not committed with the repository 规则不会被提交到库中. You can use this technique 技巧 for locally-generated files 本地生成的文件 that you don't expect other users to generate,不希望其他用户生成 such as files created by your editor.
Use your favorite text editor to open the file called .git/info/exclude within the root of your Git repository. Any rule you add here will not be checked in, and will only ignore files for your local repository.
- In Terminal, navigate to the location of your Git repository.
- Using your favorite text editor, open the file .git/info/exclude.
出处:https://www.cnblogs.com/baiqiantao/p/5334182.html
================================================================================
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。本教程提供一系列的常用操作,本文讲解如何对文件夹内的文件忽略,让GIT不对它进行操作,仅供参考。
工具/原料
-
GIT
-
TortoiseGit
方法/步骤
-
先看一下文件夹内情况
-
在GIT库文件夹上右击选择”TortoiseGit”->”Add to ignore list”->"***"
注:*** 菜单显示的是要忽略的文件名
-
勾选相应的选项
-
点OK确认
-
这时发现在Git目录下的.gitignore文件也发生了变化
-
打开这个文件看一下,发现要忽略的文件名已写入到文件内
-
以后commit时,git就不会对它受控了
说明:这个方式创建的.gitignore文件会一起提交到版本库中,这样的话,其他人也可以下载,并应用这个设置
出处:https://jingyan.baidu.com/article/dca1fa6f478c69f1a440528a.html
==================================================================================================
最近在开发.net项目时项目组完全抛弃了之前的VSS,开始全面使用SVN管理版本。虽然SVN非常不错,但是也给项目组带来了一些不小的麻烦。麻烦就是一些VS自动生成的二进制文件夹以及一些如*.suo *.user等二进制文件经常引起冲突。bin和obj内的dll文件往往是调试时产生的,这些文件如果进入版本库,那简直就是灾难,特别是一个solution下面有多个工程的时候。
网上有说,对整个解决方案目录设置属性,排除这些文件,不过我发现正常使用还不错,但一打分支然后再切回来时,这些设置就丢失了,面对7、8个人的团队,版本冲突解决是件痛苦的事情。
终于我发现了,原来全局排除可以快速解决这个问题,在TortoiseSVN中点击General,然后在Global ignore pattern中设置我们项目中不想进入版本库的文件或文件夹以空格分开即可,如我们组最讨厌以下目录:*.suo Bin log4net Obj obj bin *.user ,那么就设置如下图。之后点击“应用”,我们又一次感受到生活的美好了。
出处:https://www.cnblogs.com/muyou/archive/2012/03/13/2393323.html
==============================================================================================
也可以在配置文件中设置全局忽略样式
右键任意位置,找到【TortoiseSVN】→【设置】,在弹出窗口中,在【常规设置】→【全局忽略样式】,这里有一个输入框,以前也有网友说配置方式在这里添加,但是!添加后不生效!
不要在这里修改,点下面【Subversion配置文件】处的【编辑】,打开配置文件
在配置文件里找到【global-ignores =】这一行,在后面添加想要忽略的文件或文件夹,规则时间用空格分隔,支持正则规则。
比如,添加过滤class文件和bin文件夹,在【global-ignores =】最后添加面【 *.class *bin】,保存。忽略规则生效了!
个人说明:在启用这里的配置的时候,是把【global-ignores =】这一行的 “#” 删除了表示启用,但是global-ignores前面不能有空格,不然TortoiseSVN会提示配置错误的。
出处:https://jingyan.baidu.com/article/fea4511a2f537df7bb9125db.html
===========================================================================================================
TortoiseSVN客户端初次导入文件到服务器的时候会忽略一些文件,刚开始使用SVN我不知道这个特性,导致了最近一个项目最大损失:原以为导入操作的时候,TortoiseSVN客户端会把所有文件都提交。
于是删除了原来保存在本机电脑的原始数据,但服务端那个并不是完整的,过滤了一些文件。当发生错误的时候,想要恢复到原来那个原始版本,结果怎么也恢复不了了。
C#做winform开发,我想要在初次导入数据100%无遗漏的提交。第一次导入不启用全局忽略,我这样子设置:
点编辑,在config配置文件中,查找global-ignores 。并在前面使用#注释这句代码,如:# global-ignores
当你第一次提交完成后,在把config配置文件中的# global-ignores前面的注释给删除“# ”(包括#后面的那个空格,不然TortoiseSVN会报错),如下:
那么以后恢复的时候,可以指定回滚的版本了,就可以恢复以前的数据了。
说明:如下图中的的两个地方,如果有一个地方配置了过滤了某些类型的文件或文件夹,则都无法提交到svn服务器上,必须这两个地方都不启用。
出处:http://www.sufeinet.com/thread-11997-1-1.html
===========================================================================================
方式一:
在资源管理器中,右键一个未加入版本控制文件或目录,并从弹出菜单选择TortoiseSVN →Add to Ignore List,会出现一个子菜单,允许你仅选择该文件或者所有具有相同后缀的文件。
如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN →从忽略列表删除。
方式二:
Settings > General > Global ignore pattern 添加了一个 *.class
svn:ignore、global-ignores区别:
1、svn:ignore:只对当前目录有效;
global-ignores:是全局有效,就是所有目前都有效;
2、svn:ignore:必须每个工作目录都要设置,个性化配置;
global-ignores:只需要配置一次,使用方便;
出处:https://www.cnblogs.com/Jerry-MrNi/p/7203940.html
================================================================================================
如果某个文件已经提交到了svn,这个时候需要通过svn来把服务器上的改文件删除,然后再在本地,点击该文件
选择把该文件删除,recursively表示递归删除(文件下->下级文件夹->下级文件夹.....)
如过是同一忽略某类文件夹,比较bin,obj等,可以通过项目所在文件夹,空白处右键,选择svn的属性项目,
如图所示,点击“属性”,弹出如下界面:
点击上图中的【高级】,现在有的版本显示的是【其他】,按照下面图中所示进行选择和录入:
勾选上图中的“Apply property recursively”,点击“OK”即可。
如果已经提交到了svn服务器上,也必须先通过svn把服务器上的对应目录删除,然后把本地的对应目录删除,然后update签入同步一下,就可以了。
忽略的文件或目录的图标是:
出处:https://www.cnblogs.com/zsx-blog/p/6549222.html
============================================================
2013-06-23 更
具体实现
- 在解决方案目录上点右键
- 在乌龟菜单中找到"属性"点开
- 在弹出窗中点"新增"
- 在弹出窗中的"属性"中选择"svn:ignore"
- 然后取值中填上bin和obj各一行
- 确认并提交目录更新
然后每次提交解决方案目录的时候就会忽略掉bin和obj目录
首先要确保的是操作的目录已经进行版本控制,也就是执行了svn 检出的命令。(刚开始可以建一个空的svn版本目录,在目录中执行检出命令,并不会删除原来文件的内容。)
否则你看到的是下图的菜单,没有属性按钮。
一旦目录加入版本控制之后,右键就可以看到下图的菜单了。
点击属性之后,【新建】==》【高级】或者【其他】(不同的TortoiseSVN版本叫法不一样)
按输入框设置忽略
出处:https://www.cnblogs.com/yelaiju/p/3145297.html
=========================================================================
https://blog.csdn.net/qq_33679504/article/details/78555027
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/9066023.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2018-05-21 10:34 jack_Meng 阅读(54700) 评论(1) 编辑 收藏 举报