一、Git忽略提交的3种方法
在使用Git进行代码版本管理的过程中,一些敏感信息通常不应该被提交到版本库中,例如临时文件、日志文件、密码文件等。此时需要使用Git的忽略提交功能。
Git忽略提交有3种方法:
.gitignore
文件:在项目根目录下创建一个名为.gitignore
的文件,并将需要忽略的文件或目录名称添加到文件中即可。需要注意的是,.gitignore
文件中可以使用通配符匹配文件名。
例如,我需要忽略所有以.tmp
结尾的文件,以及/logs
目录中的所有文件,需要在.gitignore
文件中添加如下内容:
*.tmp
/logs/*
.git/info/exclude
文件:该文件的使用方法与.gitignore
文件相同,但是不需要添加到版本库中。当我们不想将某些需要忽略的文件或目录添加到全局.gitignore
文件中时,可以使用该方法。
例如,我需要在该项目中忽略.DS_Store
文件,只需在.git/info/exclude
文件中添加如下内容:
.DS_Store
- 忽略全部文件:当我们需要忽略项目中所有文件时,可以使用
--assume-unchanged
参数。该参数会将所有文件标记为不需再次提交,从而达到忽略提交的目的。相比于前两种方法,该方法需要结合Git的版本管理和分支管理一同使用。
例如,我需要将本地的README.md文件忽略提交,只需执行以下命令:
git update-index --assume-unchanged README.md
二、Git忽略规则
在使用.gitignore
文件开启忽略提交功能时,需要遵守一定的规则,否则可能会出现异常。
-
以井号(#)开始的行被视为注释行,将被忽略。
-
可以使用斜杠(/)来指定目录,也可以使用星号(*)匹配任意字符。例如,
/logs
指定了logs目录,而*.bak
则匹配了所有以.bak结尾的文件。 -
前缀或后缀匹配可以使用两个星号(**),例如
/logs/**
可以匹配所有logs/
开头的路径,同时也可以匹配logs/
下的所有子目录和子文件。 -
行末不能有空格和空行,否则会引起异常。
示例1:
假设有一个名为myapp的项目,项目目录下有一个日志文件myapp.log
需要被忽略提交到版本库中,可以在.gitignore
文件中添加如下内容:
# ignore log file
myapp.log
示例2:
假设有一个名为blog的项目,项目中有一个公共的静态目录/public
,该目录下包含图片等文件,需要将该目录及其下所有文件都忽略提交到版本库中,可以在.gitignore
文件中添加如下内容:
# ignore public directory
/public/
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Git忽略提交的3种方法及Git忽略规则 - Python技术站