使用.gitignore来进行忽略文件。在windows下不能建立空文件名的文件,可以在git bash下使用touch .gitignore
来进行创建.gitignore文件。
.gitignore格式规范
规范如下:
空行或是以
#
开头的行即注释行将被忽略。匹配模式可以以
/
开头防止递归。匹配模式可以以
/
结尾指定目录。可以使用标准的 glob 模式匹配。
可以使用
!
来否定忽略。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*
)匹配零个或多个任意字符;[abc]
匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?
)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9]
表示匹配所有 0 到 9 的数字)。 使用两个星号(*
) 表示匹配任意中间目录,比如a/**/z
可以匹配 a/z
, a/b/z
或 a/b/c/z
等。
1 | # no .a files |
GitHub上有很详尽的针对多种项目及语言的.gitignore文件列表。
本地和远程库中git忽略文件
从未提交过,需要忽略
从未提交过(没有commit过),直接使用.gitignore进行忽略文件。它作用于没有被git记录过的文件(untracked files)。
已经push到远程库,现在要在远程库中删除,并在以后提交中忽略
和上面情况不同的是,在远程库中已经存在了。(比如操作失误,现在想要删除远程库中的这些文件)
1 | git rm --cached *.exe |
已经push到远程库,以后提交中忽略此文件(保留在远程库中),即使本地该文件有改动
该情况适用于提交某个通用的模板文件,供其他人修改。别人修改过,也不会提交到远程库中。
1 | git update-index --assume-unchanged config.txt |