git过滤掉不需要上传的文件
在git管理中可以手动创建.gitignore文件来设置。
随便创一个文件,比如txt文本~
在里面添加如下几句话:
# git ignore
xcuserdata
.DS_Store
以上两条的命名规则是
忽略所有包含xcuserdata的文件(夹)
忽略所有文件夹中后缀是.DS_Store的文件
然后把文件的名字改成.gitignore(注意在.前面是没有任何字符的),并把文件放在git管理目录的根目录下。
关于.gitignore文件的内容规则,先Mark下,之后更新哈
.gitignore无效,不能过滤某些文件
描述:
在.gitignore添加file1文件,以过滤该文件,但是通过Git status查看仍显示file1文件的状态。
原因:
在git库中已存在了这个文件,之前push提交过该文件。
.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
解决:
需要在git库中删除该文件,并更新。
然后再次git status查看状态,file1文件不再显示状态。
gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决?
描述:
gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决?
解决:
- 为避免冲突需要先同步下远程仓库:
git pull
- 在本地项目目录下删除缓存:
git rm -r --cached .
- 再次add所有文件,输入以下命令,再次将项目中所有文件添加到本地仓库缓存中 :
git add .
- 添加commit,提交到远程库:
git commit -m "filter new files"
&git push
关于 git的rm 相关参数可参考这里:git如何移除某文件夹的版本控制
比如我在我的AR Demo中想要忽略libiPhone-lib.a库(太大了,貌似不能超过100M),之前的Commit中已经提交到本地版本库了。添加.gitignore并执行上述操作后,通过git status
命令,可以看到:
new file: .gitignore
deleted: ARFuTest/Libraries/libiPhone-lib.a```