知了小站 - IT人的小站 - Git教程 https://www.ydyno.com/tag/git/ 记 Git - Permission denied (publickey) 问题 https://www.ydyno.com/archives/1636.html 2022-07-21T17:56:00+08:00 最近在 Centos 9 stream 上使用 ssh-keygen -t rsa -C "email" 生成密钥,在 coding 添加公钥后 clone 代码出现如下问题git@e.coding.net: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.将密钥复制到本地电脑上进行测试,发现可以成功 clone 项目。通过搜索发现 csdn 没有一个答案能解决问题(全是重复的文章),最后在国外网站找到了解决办法解决方案不使用 rsa 算法生成密钥,使用更安全的 ECDSA 或 ED25519 生成ssh-keygen -t ed25519 -C "email"在 coding 重新添加后,成功 clone 了项目。感觉可能是 OpenSSH 版本问题,有时间再测测看。参考:https://confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html 解决 ssh: connect to host github.com port 22: Connection timed out https://www.ydyno.com/archives/1510.html 2022-04-18T21:50:00+08:00 问题引入当我在国内 Linux 机器上安装好 Git 环境后,将 github 代码克隆到 Linux 服务器出现了如下问题[root@ydyno ~]# git clone git@github.com:elunez/**.git 正克隆到 '**'... ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.解决方法进入 ~/.ssh 查看是否缺少 config 配置文件,如果缺少该配置文件那么使用如下命令创建# 创建并写入文件数据 vi ~/.ssh/config # 写入如下数据,User 填入注册时的邮箱 Host github.com User xxxxx@xx.com Hostname ssh.github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443修改文件权限sudo chmod 600 config再次 clone 发现已经没问题了[root@ydyno ~]# git clone git@github.com:elunez/**.git 正克隆到 '**'... remote: Enumerating objects: 14, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (6/6), done. ^C收对象中: 35% (5/14), 2.67 MiB | 544.00 KiB/s 参考:https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port#enabling-ssh-connections-over-https Github文件加速平台分享 https://www.ydyno.com/archives/1383.html 2021-11-10T16:34:00+08:00 前言受防火墙的影响Github国内访问质量一直不太行,这个时候我们可以使用Github加速平台,提高国内访问Github速度。平台支持 raw.githubusercontent.com , gist.github.com , gist.githubusercontent.com 文件加速下载可以查看 搭建教程 进行自行搭建,如果不想折腾的可以使用我搭建的成品站 GitHub 文件加速 使用说明支持终端命令行 git clone , wget , curl 等工具下载支持终端命令行 git clone, wget, curl 等工具下载.git clone https://slink.ltd/https://github.com/elunez/3DCEList.git wget https://slink.ltd/https://github.com/elunez/3DCEList/archive/refs/heads/master.zip curl -O https://slink.ltd/https://github.com/elunez/3DCEList/archive/refs/heads/master.zip注意:不支持项目文件夹,不支持 SSH Key 方式 git clone 下载输入示例分支源码:https://github.com/elunez/3DCEList/archive/refs/heads/master.zip Raw 文件:https://raw.githubusercontent.com/elunez/3DCEList/master/index.html Releases 源码:https://github.com/NginxProxyManager/nginx-proxy-manager/archive/v2.9.16.tar.gz Releases 文件:https://github.com/NginxProxyManager/nginx-proxy-manager/archive/refs/tags/v2.9.16.tar.gz GIT 常用命令整理 https://www.ydyno.com/archives/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%95%B4%E7%90%86.html 2019-01-07T12:33:00+08:00 master : 默认开发分支; origin : 默认远程版本库初始化操作$ git config -global user.name <name> #设置提交者名字 $ git config -global user.email <email> #设置提交者邮箱 $ git config -global core.editor <editor> #设置默认文本编辑器 $ git config -global merge.tool <tool> #设置解决合并冲突时差异分析工具 $ git config -list #检查已有的配置信息创建新版本库$ git clone <url> #克隆远程版本库 $ git init #初始化本地版本库修改和提交$ git add . #添加所有改动过的文件 $ git add <file> #添加指定的文件 $ git mv <old> <new> #文件重命名 $ git rm <file> #删除文件 $ git rm -cached <file> #停止跟踪文件但不删除 $ git commit -m <file> #提交指定文件 $ git commit -m “commit message” #提交所有更新过的文件 $ git commit -amend #修改最后一次提交 $ git commit -C HEAD -a -amend #增补提交(不会产生新的提交历史纪录)查看提交历史$ git log #查看提交历史 $ git log -p <file> #查看指定文件的提交历史 $ git blame <file> #以列表方式查看指定文件的提交历史 $ gitk #查看当前分支历史纪录 $ gitk <branch> #查看某分支历史纪录 $ gitk --all #查看所有分支历史纪录 $ git branch -v #每个分支最后的提交 $ git status #查看当前状态 $ git diff #查看变更内容撤消操作$ git reset -hard HEAD #撤消工作目录中所有未提交文件的修改内容 $ git checkout HEAD <file1> <file2> #撤消指定的未提交文件的 修改内容 $ git checkout HEAD. #撤消所有文件 $ git revert <commit> #撤消指定的提交分支与标签$ git branch #显示所有本地分支 $ git checkout <branch/tagname> #切换到指定分支或标签 $ git branch <new-branch> #创建新分支 $ git branch -d <branch> #删除本地分支 $ git tag #列出所有本地标签 $ git tag <tagname> #基于最新提交创建标签 $ git tag -d <tagname> #删除标签合并与衍合$ git merge <branch> #合并指定分支到当前分支 $ git rebase <branch> #衍合指定分支到当前分支远程操作$ git remote -v #查看远程版本库信息 $ git remote show <remote> #查看指定远程版本库信息 $ git remote add <remote> <url> #添加远程版本库 $ git fetch <remote> #从远程库获取代码 $ git pull <remote> <branch> #下载代码及快速合并 $ git push <remote> <branch> #上传代码及快速合并 $ git push <remote> : <branch>/<tagname> #删除### 远程分支或标签 $ git push -tags #上传所有标签