git版本管理 .gitignore设置

.gitignore格式

我们需要用到.gitignore以及.git/info/exclude,即不加入版本控制,在git根目录下建立.gitignore,具体设定如下:

tmp.txt         //忽略tmp.txt


*.log           //忽略所有log文件


tmp*.log    //忽略log目录下的包括子目录下的所有log文件

其他的一些过滤条件,*其实就是正则表达式了

?:代表任意的一个字符


*:代表任意数目的字符


{!ab}:必须不是此类型


{ab,bb,cx}:代表ab,bb,cx中任一类型即可


[abc]:代表a,b,c中任一字符即可


[ ^abc]:代表必须不是a,b,c中任一字符

由于git不会加入空目录,所以下面做法会导致tmp不会存在

tmp/*             //忽略tmp文件夹所有文件

改下方法,在tmp下也加一个.gitignore,内容为

*


!.gitignore

中止track

还有一种情况,就是已经commit了,再加入gitignore是无效的,我们可以删除版本库对文件的track

git rm --cached ignore_file  

另外对文件夹内容的track

git rm --cached dir/ -r  

最后当然要提交咯,但是这样相当于删除了版本库中的这个文件,但是本地保留,慎重!删除之后其他人clone下来就没有该文件了哦

git rm --cached ignore_file  

这样就OK了么,当然不是。
已track的文件,又必须在版本库中保留,该如何ignore呢
首先我们要在.gitignore/exclude中进行上述操作忽略他们,但是这些文件已经包括在版本库,光是这样忽略是木有用的,有修改依然会有M标记
这时我们在本地clone完成后如下操作,即可忽略这些文件的版本更新:

git update-index --assume-unchanged PATH or FILE  

另外重点说一下.

gitignore以及.git/info/exclude的区别

.gitignore

  1. 可以放到工作目录任何地方,以相对路径实施忽略;
  2. 可以提交到版本库,对所有clone下来的版本生效。 *所以个人特殊忽略不要在这里添加哦

.git/info/exclude

  1. 唯一,本地副本有效
  2. 不会提交到版本库,只对本地副本有效

~/.gitconfig/core.excludesfile #全局ignore方法

  1. 唯一,本地所有git repo有效

gitignore 优先级

它检查多个gitignore文件的模式,从高到低优先级通过下面规则确定。
来自于支持使用模式的命令行命令
来自于文件系统中的.gitignore文件。目录结构较高的.gitignore模式将被较近的.gitignore覆盖
来自$GIT_DIR/info/exclude
被配置变量core.excludesfile指定文件中的模式

Drupal 团队开发的.gitignore设置

这里抛砖引玉,介绍一下我们的做法,有错漏望指证
根目录下的.gitignore

sites/default/*                          #忽略该文件所有文件的改动


sites/default/default.settings.php       #保留default


.*                                       #忽略经常有的.setting .project等工程配置文件


!.gitignore                              #保留对.gitignore的跟踪

个人不需要提交的文件,在.git/info/exclude 自行配置

完成clone后运行下列代码

 git update-index --assume-unchanged sites/default/settings.php  

有时候提交了一些东西,但后来想从公共版本库删除,并且本地需要保留的文件/目录,可以运行以下代码

 git rm --cached file/[dir -r]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值