虽然对Git有过简单学习,但是日常使用中依旧出现了大大小小的问题,本文用以记录这些点,一则加深使用熟练度,再则作为问题小字典,时时勤拂拭。
因为是零散的记,故拾贝以题之。
MAC的zsh终端git指令简写

更多指令缩写:https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh
本地分支落后版本,删除
删除本地分支的时候,发现报错,如下⬇️
error: The branch 'xxx' is not fully merged.
If you are sure you want to delete it, run 'git branch -D xxx'.
已经合并过,所以不是合并不完全的问题,百度发现是本地-远程分支不匹配
因为我之前在gitlab上提交merge request的时候勾选了合并后删除分支的操作,所以远程没有对应的分支了,直接强制删除本地该分支即可。

或者在终端中使用指令,gb -D xxx
无法git push到github
当我自己尝试在github上传自己的文件的时候发现了,有时候push会出错,如下↓
git push origin main:main
fatal: unable to access 'https://github.com/xxxxxxxxxxxxxxxx/': OpenSSL SSL_read: Connection was reset, errno 10054
产生原因:服务器的SSL证书没有经过第三方机构的签署
git config --global http.sslVerify "false"
忽略SSH证书错误
也可以不加–global (只应用于当前仓库)
关于超前、落后版本的各种情况
本地超前

我的本地分支从远端的另一个分支git pull来更新了代码
同时也验证了git pull等价于fetch和merge
但是本地更新后(和图中粉色分支上代码一致了),远程分支落后了
切换到蓝色分支,使用git push即可
恢复git reset HEAD^
在做自己的项目的时候,发现应该在develop-win分支开发的
结果在develop上开发了,而且还commit了,
我直接git reset --hard <hash>发现回退到上一个commit,但是工作区也随之改变了
然后我接着git reset HEAD^发现我的提交消失了。。。
查博客之后发现可以恢复
使用git reflog查看提交的所有历史(类似上面的回退提交也会被历史记录下来)
找到之前提交的hash值,完美恢复
报错:error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
HTTP2版本过高,修改成1.1版本即可
git config --global http.version HTTP/1.1
删除git stash中的内容
git stash list可以查看所有stash的内容,以栈的形式存在
git stash drop stash@{index} index表示要删除的某次内容
相当于arr.pop()
git stash clear删除所有内容
fatal: refusing to merge unrelated histories
情境
仓库迁移到gitlab的时候,发现主分支是main,原来的主分支是master,合并两个分支的时候报错,如题
解决
在合并/拉取代码后面加一行
--allow-unrelated-histories
g merge origin master --allow-unrelated-histories
gl origin master --allow-unrelated-histories
最后
以上就是忧伤鞋垫最近收集整理的关于Git拾贝关于超前、落后版本的各种情况的全部内容,更多相关Git拾贝关于超前、落后版本内容请搜索靠谱客的其他文章。
发表评论 取消回复