什么情况
今天(2020-04-09)维护一个iOS项目,增加完需求走完测试流程后准备在gitlab上做个版本,结果提交遇到如下问题:
! [rejected] master -> master (fetch first)
开始以为是仓库没有权限,于是登录gitlab查看并不是权限的问题。
这个项目有些时日没有改动了,没有在意改动的问题,于是:
git pull
-
git diff
改完有差异的文件后,clean Xcode工程,提交更改再push还是不行。
modified: ...... \*/UserInterfaceState.xcuserstate
才发现ignore文件居然没有...于是添加了Objective-C的忽略文件。
各种ignore文件,点击这里找
怎么做的
- 找到后创建ignore文件:
vim .gitignore
把相应的模板粘贴进去后保存.
或者touch .gitignore
然后使用文本编辑器也可以。 - 忽略文件中追加以下内容并保存:
xcuserdata/
*.xcbkptlist
*.xcuserstate
project.xcworkspace
xcuserdata
UserInterfaceState.xcuserstate
project.xcworkspace/
UserInterface.xcuserstate
3.提交忽略文件
当前所在分支和远程一一对应的话push,pull不用指定分支
git add . ; git commit -m "fuck ignore file" ; git push
如果不放心文件有没有都改完,可以 git pull ; git diff
再查一遍修改完提交。
额外
- 回退到某个提交节点
- 查询所有提交点:
git reflog
- 回退:
git reset --hard HEAD@{n}
这个n就是上面命令列举出的数字
- 清除缓存区文件
git rm -r --cached .
不要忘记这个点【.】