Git拾贝

虽然对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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值