Git 的 .gitignore 配置

06-26 16:08:00   来源:   评论: 点击:

git中提供两种过滤机制,一种是全局过滤机制,即对所有的git都适用;另一种是针对某个项目使用的过滤规则。 git
git中提供两种过滤机制,一种是全局过滤机制,即对所有的git都适用;另一种是针对某个项目使用的过滤规则。

.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。问题:.gitignore只适用于尚未添加到git库的文件。如果已经添加了,则需用gitrm移除后再重新commit。

第一步:添加".gitignore"文件

往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。

第二步:设置过滤条件

1、配置语法:

 以斜杠“/”开头表示目录;

 以星号“*”通配多个字符;

 以问号“?”通配单个字符

 以方括号“[]”包含单个字符的匹配列表;

 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

 此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

2、示例:

(1)规则:fd1/*

   说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

(2)规则:/fd1/*

   说明:忽略根目录下的 /fd1/ 目录的全部内容;

(3)规则:

/*

!.gitignore

!/fw/bin/

!/fw/sf/

说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;

第二种方法:可以修改.git/info/exclude文件来实现。

举例如下:

vi .git/info/exclude

# git ls-files --others --exclude-from=.git/info/exclude

# Lines that start with '#' are comments.

# For a project mostly in C, the following would be a good set of

# exclude patterns (uncomment them if you want to use them):

# *.[oa]

# *~

*.[oa] #忽略以.o或.a结尾的文件或目录

*.pyc

*.exe #忽略以.exe结尾的文件或目录

.* #忽略以.开头的文件或目录

*.rar

*.zip

*.gz

*.bz2

*.db

*.sqlite

************************ 分割线***************************

摆脱 UserInterfaceState.xcuserstate给Xcode 版本控制(git)带来的困扰

当添加到缓存区的时候命令 rm 移除不了文件

错误提示:

zizp:NightCafe zizp$ git rm .DS_Store

error: the following file has changes staged in the index: .DS_Store(use --cached to keep the file, or -f to force removal)

解决方法:

$ git rm --cached iLedger.xcodeproj/project.xcworkspace/xcuserdata/Alex.xcuserdatad/UserInterfaceState.xcuserstate

$ git commit -m "Removed the stupid strange file that shouldn't be tracked"

$ git push

或者是

$ git rm -f NightCafe.xcworkspace/xcuserdata/zizp.xcuserdatad/UserInterfaceState.xcuserstat

相关热词搜索:

上一篇:Git 常用命令详解 下一篇:github常见操作和常见错误!
分享到: 收藏