git怎么把忽略文件变成普通文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git怎么把忽略文件变成普通文件相关的知识,希望对你有一定的参考价值。

参考技术A 1. 如何在Git中忽略某些文件
1. 介绍

有些文件是我们并不想加入也无需被添加到 Git 管理中,同时也不希望他出现在未跟踪列表中。例如在编译过程中生成的 o 文件。 “.gitignore” 文件可以达到这个效果。

2. 全局与局部

.gitignore 有全局和局部两种:

2.1 全局

通过修改全局配置 git config 中的 excludesfile 指定全局忽略文件。设置方法:

$git config --global core.excludesfile ~/.gitignore

修改 ~/.gitignore 这个文件将作用于所有 git 项目e69da5e887aa7a686964616f31333361323561,并且作用于项目实例中的所有被跟踪的目录。比如说我们可以在该文件中添加 *.o 来忽略所有 .o 文件。

2.2 局部

忽略文件默认为当前目录的 .gitignore ,但它只作用于当前目录下。上面说到,在全局的 .gitignore 文件中添加 *.o 会忽略所有目录下产生的 .o 文件,但在当前目录下的 .gitignore 中添加 *.o 却只能忽略当前目录下的 .o 文件。

3. 语法

.gitignore 的语法规范如下:

·所有空行或者以注释符号 # 开头的行都会被 Git 忽略;

·可以使用标准的 glob 模式匹配。 * 匹配模式最后跟反斜杠(/)说明要忽略的是目录。 * 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

glob 模式匹配:

·星号(*)匹配零个或多个任意字符;

·[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);

·问号(?)只匹配一个任意字符;

·[0-9a-zA-Z] 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9a-zA-Z] 表示匹配所有 0 到 9 的数字和所有字母);

·\ 转义字符。

注:理论上来说,在要忽略的格式文件后面添加注释是允许的,但经过我的验证,结果发现这样子操作并不能达到预期的效果。

4. 例子

一个 .gitignore 例子。

# 此为注释 – 将被 Git 忽略

# 忽略所有 .a 结尾的文件

*.a

# 但 lib.a 除外

!lib.a

# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO

/TODO

# 忽略 build/ 目录下的所有文件

build/

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

doc/*.txt
2. 怎样让Git忽略当前已经更改的文件
忽略部分文件(如编译后的class文件、settings等 不必提交到远端的东东)

在代码目录下新建.ignore文件,内如如下

*.class 要忽略的文件后缀名 *为通配符

*.classpath

*.project

pay/.settings/ 要忽略的路径

pay/WebRoot/WEB-INF/classes/

如果这些文件还没提交到远端,一切Ok。

若果已经提交了 那么需要先 git rm(settings要先备份) 再重新 git mit ,然后再git push提交到远端(再将备份还原)。以后git 就不会再检查这些文件了
3. 如何创建.gitignore文件,忽略不必要提交的文件
1、.gitignore:

在工程实现过程中,会生成一些中间文件,或者在项目中的部分文件是不需要进行版本管理的。对于这些文件应该对于Github来讲是透明的。Github提供这种功能,可以自己指定哪些文件可以不被管理。具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个 .gitignore(gitignore是隐藏文件,所以前面有个点)

gitignore - Specifies intentionally untracked files to ignore

2、使用gitignore文件来解决这个问题,步骤是:

1) touch .gitignore #创建gitignore隐藏文件

2) vim .gitignore #编辑文件,加入指定文件

#下面是gitignore文件的内容

#忽略gitignore文件

.gitignore

#忽略后缀名为.o和.a的文件

*.[oa]

#显示指定忽略名称为main的文件

main

3、文件.gitignore的格式规范:

A:#为注释

B:可以使用shell所使用的正则表达式来进行模式匹配

C:匹配模式最后跟"/"说明要忽略的是目录

D:使用!取反(例如目录中包含 test.a,并且gitignore文件中包含 *.[oa],如果在文件中加入 !test.a 表明忽略除test.a文件以外的后缀名为.a或者.o的文件)

4、配置完.gitignore文件后,执行git status命令,会发现那些文件不再是Untracked files了,也就完成了忽略指定文件的功能。
4. 如何创建.gitignore文件,忽略不必要提交的文件
这个文件是后来添加上的.

这些已经添加的文件不会自动从git中去掉, 需要你手动完成. 如果是在第一次用git跟踪这些文件之前就添加了.gitignore文件, git就不会添加这些文件. 看你的描述, 应该是你先用git管理了所有的文件后, 才添加的.gitignore文件. 但是你上面的那些文件夹已经被git添加完了.

git不会跟踪空文件夹, 如果你需要保留空文件夹, 可以在文件夹里面添加一个空白文件. 类似 .gitkeep,转载,仅供参考。

以上是关于git怎么把忽略文件变成普通文件的主要内容,如果未能解决你的问题,请参考以下文章

SVN忽略某个文件的更改,并不提交

使用Git时,怎么忽略不想上传的文件

git 提交怎么忽略编译文件

git-忽略已提交的文件或目录

ios 忽略文件 .gitignore

git忽略指定的文件