git update-index --assume-unchanged(忽略已跟踪文件的改动)

在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 目录了。

---------------------------------------------------------------------------------------------------------------

本地永久忽略,效果的gitignore一样,只不过不适于写到gitignore中而已,可以自己建立一个本地独享的gitignore,然后git config --global core.excludesfile  文件的绝对路径,也可以直接将本地要忽略的文件添加到.git/info/exclude中。

$ git update-index --assume-unchanged /path/to/file       #忽略跟踪

$ git update-index --no-assume-unchanged /path/to/file  #恢复跟踪

时间: 2024-12-22 20:11:30

git update-index --assume-unchanged(忽略已跟踪文件的改动)的相关文章

Git忽略已跟踪的文件

在使用Git的时候,有时候我们需要对某个文件不进行版本控制,也就是忽略对某个文件的跟踪,如缓存文件.配置文件等. 但是在Git的版本控制系统中,如果已经对某个文件进行了版本控制,那么再忽略掉此文件的时候,会删除掉远程服务器的文件,这显然与我们的意愿不符,Google了好久,找到了下面这个办法. (1)我们在Clone完某个项目后,运行如下命令,本地Git库即可忽略对某个指定文件的版本记录: git update-index --assume-unchanged filename(要忽略的文件的名

git忽略已追踪文件

在更新项目代码时,需要修改配置文件,为了避免在更新代码时重新pull配置文件,使用.gitignore可以解决此问题. 首先,在配置文件所在目录创建文件.gitignore(git bash里使用命令touch .gitignore) 然后,.gitignore配置需要忽略的文件 .gitignore settings.py 最后,保存后执行git命令: git rm --cached setting.py git add .gitignore git commit -m "We really

Git忽略已追踪文件或文件夹

今天拉取代码,用vs生成后发现obj文件夹下自动生成的文件被同事提交了,这个本应该加入到ignore的 我就需要把这个文件夹加入到gitignore, 不过已经追踪的文件和文件夹,直接添加到gitignore是无效的 解决方法:找到obj路径,把obj文件夹删除掉.再把obj加到gitignore进行忽略,之后在sourcetree中把gitignore和删除都提交并push. 当然也可以用git命令行,这个网上有很多文章有介绍. 原文地址:https://www.cnblogs.com/day

git正确的删除远程仓库的文件并用.gitignore忽略提交此文件

我向远程仓库提交了如下文件src/ pom.xml target/ WebContent/,发现没必要提交target目录. 于是做了如下操作: git rm -r --cached target git commit -m "delete target/" git push origin master 打开github看一下,target目录是不是没有提交了! 如果想把target目录以后都不用提交,可以作如下 vi .gitignore #写入: target/ #可以在.giti

GIt帮助文档之忽略某些文件——忽略python虚拟环境文件夹

前言: 为避免多个Python项目下安装库之间的冲突,或为轻松打包某个项目,建议在每个项目文件夹下安装Python虚拟环境,并在虚拟环境内进行操作,之后你安装的任何库和执行的任何程序都是在这个环境下运行.不过,在使用Git进行版本控制的时候,需要忽略虚拟环境相关文件,取而代之地是建立一个requirement.txt的文档,用以记录所有依赖库极其精确的版本号,以便于在别处部署运行环境.这些事情最好在新建Git仓库的时候就搞定. 接下来,所要做的是两件事:其一.创建一个名为 .gitignore 

git 在eclipse中忽略上传文件

在我们的工程项目中,有些文件是不需要上传到服务器上的,比如那些 */target/ */bin/*.settings/*.classpath*.gitignore*.project 我们将这些文件添加到.gitignore文件中,然后做代码提交的时候,eclipse就会忽略掉这些配置的文件,就不需要逐个挑选那些不需要上传的信息.但是这些仅仅是对未上传的文件生效. 那么那些已经上传,并且在各自环境需要修改,并且不需要上传的,比如那个spring.xml文件,每个人自己下载后,各自的配置文件路径不一

MySQL忽略已重复数据强制创建唯一索引

常规方法: CREATE UNIQUE INDEX `idx_m2b_product_photo_pid_sort` ON `m2b`.`m2b_product_photo` (pid, sort) COMMENT '' ALGORITHM DEFAULT LOCK DEFAULT; 忽略已重复数据强制创建唯一索引的方法: ALTER IGNORE TABLE `m2b_product_photo` ADD UNIQUE `idx_m2b_product_photo_pid_sort` (`pi

git取消跟踪文件

取消跟踪文件: $git rm --cached FILENAME 取消跟踪目录: $git rm --cached FILENAME -r

解决MyEclipse开启后总是不停的在Update index

最近MyEclipse开启之后总是不停的在 update index,很是耗时间, 查找资料发现Update index...是Maven在不断更新, 解决办法如下: Window --> Preferences --> Myeclipse --> Maven4Myeclipse --> 去除Download repository index updates on startup前的勾选即可 版权声明:本文为博主原创文章,未经博主允许不得转载.