解决 git 命令使用 SSH 时无法连接、没有使用代理的问题

我自己的网络环境是透明代理,再不济自己电脑上也能开 TUN,所以 git 命令就算走 ssh,搭配如下配置让连接 GitHub 使用 443 端口,就能走 HTTP 代理: Host github.com HostName ssh.github.com Port 443 User git 但是在不可控的容器环境里无法使用 TUN 的情况下,无法完成透明代理,SSH 也就无法使用代理了。 解决方案如下: 在 ~/.ssh/config 最前面添加以下配置: Host * ProxyCommand nc -x <sock5代理> %h %p 其中 <sock5代理>…

Git 添加 SSH 密钥、多个 SSH 密钥教程

教程仅详细说明如何创建密钥,至于如何将密钥上传至 Git 托管平台请查阅对应平台的帮助文档。 创建密钥 创建密钥推荐在 Linux 上操作,例如 Debian 等,因为其自带相关工具不用额外操作。 密钥创建命令: ssh-keygen -t ed25519 -C your_email@example.com * -t:这个是密钥格式,一般来讲可以用 ed25519,部分老平台可能不支持这个算法,此时可以换成 rsa。 * -C:此参数实际作用为添加注解,用于区分不同密钥,简单来讲就是取个名字。 创建过程: madray@NAS:~$ ssh-keygen -t ed25519 -C your_email@example.com Generating public/private ed25519 key…

.gitignore不生效原因和解决方法

转自 Git忽略规则(.gitignore配置)不生效原因和解决 - 星泽卡卡罗特 - 博客园 (cnblogs.com) 方法一: .gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。 解决方法:git清除本地缓存即可(改变成未track状态) [root@kevin ~]# git rm -r --cached . 需要特别注意的是: 1. .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 2. 想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cac…