工作过程中遇到的Git问题总结篇

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文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决?

解决:

  1. 为避免冲突需要先同步下远程仓库:git pull
  2. 在本地项目目录下删除缓存:git rm -r --cached .
  3. 再次add所有文件,输入以下命令,再次将项目中所有文件添加到本地仓库缓存中 :git add .
  4. 添加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```

你可能感兴趣的:(工作过程中遇到的Git问题总结篇)