Git ! [rejected] master -> master (fetch first)

什么情况

今天(2020-04-09)维护一个iOS项目,增加完需求走完测试流程后准备在gitlab上做个版本,结果提交遇到如下问题:

! [rejected] master -> master (fetch first)

开始以为是仓库没有权限,于是登录gitlab查看并不是权限的问题。
这个项目有些时日没有改动了,没有在意改动的问题,于是:

  1. git pull
  2. git diff
    改完有差异的文件后,clean Xcode工程,提交更改再push还是不行。

modified: ...... \*/UserInterfaceState.xcuserstate

才发现ignore文件居然没有...于是添加了Objective-C的忽略文件。
各种ignore文件,点击这里找

怎么做的

  1. 找到后创建ignore文件:vim .gitignore把相应的模板粘贴进去后保存.
    或者touch .gitignore然后使用文本编辑器也可以。
  2. 忽略文件中追加以下内容并保存:

xcuserdata/
*.xcbkptlist
*.xcuserstate
project.xcworkspace
xcuserdata
UserInterfaceState.xcuserstate
project.xcworkspace/
UserInterface.xcuserstate

3.提交忽略文件
当前所在分支和远程一一对应的话pushpull不用指定分支
git add . ; git commit -m "fuck ignore file" ; git push
如果不放心文件有没有都改完,可以 git pull ; git diff再查一遍修改完提交。

额外

  1. 回退到某个提交节点
  • 查询所有提交点:git reflog
  • 回退:git reset --hard HEAD@{n}这个n就是上面命令列举出的数字
  1. 清除缓存区文件
  • git rm -r --cached . 不要忘记这个点【.】
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容