git使用-设置项目忽略文件

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如:

# 此为注释 – 将被 Git 忽略

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

doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

这样设置了以后 所有的 .pyc 文件都不会添加到版本库中去。

另外 git 提供了一个全局的 .gitignore,你可以在你的用户目录下创建 ~/.gitignoreglobal 文件,以同样的规则来划定哪些文件是不需要版本控制的。

需要执行 git config --global core.excludesfile ~/.gitignoreglobal来使得它生效。

其他的一些过滤条件

* ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可

* [ ^abc]:代表必须不是a,b,c中任一字符

由于git不会加入空目录,所以下面做法会导致tmp不会存在 tmp/*             //忽略tmp文件夹所有文件

改下方法,在tmp下也加一个.gitignore,内容为
                        *
                        !.gitignore
    还有一种情况,就是已经commit了,再加入gitignore是无效的,所以需要删除下缓存
                        git rm -r --cached ignore_file

注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
    git update-index --assume-unchanged PATH    在PATH处输入要忽略的文件。

另外 git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore
这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude
这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。

.gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder
。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore
文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。

时间: 2024-10-13 18:07:59

git使用-设置项目忽略文件的相关文章

设置SVN忽略文件和目录

参考:http://blog.csdn.net/hemingwang0902/article/details/6904205 在多数项目中你总会有文件和目录不需要进行版本控制.这可能包括一些由编译器生成的文件,*.obj,*.lst,或许是一个用于存放可执行程序的输出文件夹.只要你提交修改,TortoiseSVN 就会在提交对话框的文件列表中显示出未版本控制文件.当然你可以关闭这个显示,不过你可能会忘记添加新的源文件. 最好的避免类似问题的方法是添加参考文件到该项目的忽略列表.这样他们就永远不会

设置SVN忽略文件和文件夹(文件夹)

在多数项目中你总会有文件和文件夹不须要进行版本号控制.这可能包含一些由编译器生成的文件,*.obj,*.lst,也许是一个用于存放可运行程序的输出文件夹.仅仅要你提交改动,TortoiseSVN 就会在提交对话框的文件列表中显示出未版本号控制文件.当然你能够关闭这个显示,只是你可能会忘记加入新的源文件. 最好的避免类似问题的方法是加入參考文件到该项目的忽略列表.这样他们就永远不会出如今提交对话框中,而真正的未版本号控制文件则仍然列出. 1.  方法一 在 Eclipse 中点击菜单 window

设置SVN忽略文件和目录(文件夹)

在多数项目中你总会有文件和目录不需要进行版本控制.这可能包括一些由编译器生成的文件,*.obj,*.lst,或许是一个用于存放可执行程序的输出文件夹.只要你提交修改,TortoiseSVN 就会在提交对话框的文件列表中显示出未版本控制文件.当然你可以关闭这个显示,不过你可能会忘记添加新的源文件. 最好的避免类似问题的方法是添加参考文件到该项目的忽略列表.这样他们就永远不会出现在提交对话框中,而真正的未版本控制文件则仍然列出. 1.  方法一 在 Eclipse 中点击菜单 window -->

Git学习————设置提交忽略Eclipse特定文件

设置原因: 由于这些Eclipse特定文件都是为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系,提交给Git进行追踪没有意义: 另外,由于Eclipse的版本不同,其特定文件也不同,这样在合作者拷贝的时候会出现各种问题: 未修改附图: 在没有设置的时候提交,会出现这种情况是吧,有.classpath   .setting  .project  target....等等一系列的文件这些都是属于Eclipse特定文件,不需要我们提交: 解决之道: 在家目录(登录系统的用户目录)中创建一个

eclipse设置项目下文件编码格式

在很多时候,创建完项目,需要改变夏目的编码格式,但是改完后会发现,Class是改了,一些web项目的CSS.JS.JSP还有其他都还是原本编码,在这里,教大家怎么设置初始编码. 1. 选择Window--Preferences 2. 点卡General--选择Content Types--选择Text展开 3.选择Text下需要改编码的选项,如下图,填入对应编码,点击Update.

git 忽略文件的三种方式

1. 在项目目录下新建.gitignore文件并添加规则 特点:此种方式的忽略规则只局限于本项目目录及其子目录,并且.gitignore文件会被提交到远程仓库进行共享忽略规则. 2. 在.git/info/exclude中添加忽略规则 特点:忽略规则局限于本项目目录及其子目录,规则只存在本地不会被提交和共享. 3. 设置全局忽略文件 git config --global core.excludesfile ~/.gitignore 特点:忽略规则将作用于全局所有的项目,并且规则不会被存储到远程

git中忽略文件权限或文件拥有者的改变

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突.明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分.下面笔者自己做了个简单的例子来演示这种情况. 1.修改版本库的文件的权限,然后使用diff查看下改变. $ chmod 777 pack.php $ git diff pack.php git文件权限修改示例 可以看到git把文件权限也列入了版本管理. 2.在另外一个地方clone这个版本

git关于文件权限修改引起的冲突及忽略文件权限的办法

我们在使用git进行版本管理的时候,有时候只是修改了文件的权限,比如将pack.php修改为777,但其实文件内容并没有改变,但是git会认为此文件做了修改,原因是git把文件权限也算作文件差异的一部分了.下面做个测试: 1.修改版本库的文件的权限,然后使用diff查看下改变. 可以看到git把文件权限也列入了版本管理. 2.在另外一个地方clone这个版本库,修改pack.php文件,然后提交. 3.在原版本库下面更新内容. $ git pull 可以看到提示冲突. 解决办法: git中可以加

转:git设置过滤忽略的文件或文件夹

from: https://www.cnblogs.com/foohack/p/4629255.html git设置过滤忽略的文件或文件夹 我们一般向代码仓库提交项目的时候,一般需要忽略编译生成的中间文件以及文件夹的提交,因为它们是无用的,而且也会占用仓库的空间.一般只用提交.pro,.sln,makefile,程序源文件等编译必须用到的文件,所以是有这样的需求的. 怎么用呢?一般是在自己的本地项目底下建立一个.gitignore的文本文件,在命令行下用touch建立就可以了,然后编辑它,向里面