Git troubleshooting 解决方案
1. 版本撤销及恢复
- 问题描述:当我们使用了
git reset --hard commit_id
命令,将工作区的提交穿越到你指定的commit里,这个时候你会发现git log根本没有记录这之后的提交记录,此时如果想回到穿越前的状态,就缺失了相应的提交记录信息 - 解决办法:Git提供了一个命令
git reflog
用来记录你的每一次改变目录树的命令,使用好他就可以很方便的恢复你最近的提交记录,然后使用git reset --hard commit_id
命令,就能回次提交后的状态了。
建议: 如果只是想把此提交给找回来,恢复他,那还是不要用reset的方式,可以用git cherry-pick commitid单独取一个commit到当前分支或者用merge来做合并
更多翻车现场抢救方案,参考: https://mp.weixin.qq.com/s/58W1ljewwvextw05_OKE1w
2. gitlab SSH 配置
- 问题描述:在使用ssh key作为gitlab鉴权秘钥时,虽然已经将本地的.ssh/id_rsa.pub文件中的内容添加到gitlab账户下,但是依然无法使用git对仓库中的项目进行任何操作,报错内容为:
ssh_dispatch_run_fatal: Connection to 172.65.251.78 port 22: message authentication code incorrect
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.`
并且同样的秘钥配置到github是可以正常使用的
- 解决办法:使用命令
ssh-keygen -lf ~/.ssh/id_rsa.pub
,然后输入命令ssh -T git@gitlab.com
再次检验,竟然神奇地发现问题解决了,可以成功连上gitlab。
可能的原因可以参考: https://gitlab.com/gitlab-org/gitlab-foss/-/issues/43185
3. 使用tag快速管理版本
- 问题描述:
- 解决办法: