Git 的 .gitignore 配置

2016-07-06  本文已影响152人  Theshy

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

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

第一步:添加.gitignore文件

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

第二步:设置过滤条件

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

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

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

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

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

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

(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.xcuserstate
上一篇下一篇

猜你喜欢

热点阅读