使用git遇到的一些问题
一、SSH Key的创建
由于本地Git仓库和github仓库之间的传输是通过SSH加密的,所以我们需要创建SSH Key。我们先在用户主目录下看看有没有.ssh目录,如果有,再看看这个目录下是不是有如下图三个文件:
果有的话,直接跳过如下命令,如果没有的话,打开命令行,输入如下命令:
ssh-keygen -t rsa –C “youremail@example.com”
这个时候,有些用户,又会出现一个问题,那就是ssh-keygen 不是内部或外部命令
ssh-keygen 不是内部或外部命令的解决办法
- 在你自己的git安装目录下usr/bin目录下的ssh-keygen.exe,复制该路径
- 属性–>高级系统设置–>环境变量–>系统变量,找到Path变量,进行编辑,End到最后,输入分号,粘贴复制的ssh-keygen所在的路径,保存;
- 在cmd上重新执行命令:
ssh-keygen -t rsa –C “youremail@example.com” 成功后会看到如下图:
二、github连接超时
检查连接github是否成功
在命令行输入: ssh -T git@github.com
如果出现:You’ve successfully authenticated,那么连接成功可以使用了;
如果出现:ssh: connect to host github.com port 22: Connection timed out,很遗憾连接超时;
解决方法
首先我们得要找到git的安装目录,找到/etc/ssh/ssh_config文件(如果忘记了自己git的安装目录,我们可以在命令行输入:where git
就可以打印出git的安装目录);
然后在ssh_config文件末尾处添加:
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
保存后,命令行重跑 ssh -T git@github.com
出现如下图情况:
输入: yes
即可
出现如下图文字,即表示连接成功
三、Github.com无法访问
在网上查阅了一波,基本都是说修改hosts文件,往后边添加如下代码:
74.125.237.1 dl-ssl.google.com
173.194.127.200 groups.google.com
192.30.252.131 github.com
185.31.16.185 github.global.ssl.fastly.net
74.125.128.95 ajax.googleapis.com
然而,没有啥用,可能我自己电脑的问题吧。晚上回去再看看
晚上回来往hosts添加了这两行代码后再试了试,竟然神奇的可以访问了,你说气人不气人;
192.30.255.112 github.com git
185.31.16.184 github.global.ssl.fastly.net
四、Git 如何删除远程服务器文件同时保留本地文件
在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
1.删除服务器文件,本地保留此时github上已经不存在了
2.删除远程useless 文件夹,本地保留一定要注意,删除文件夹要使用-r 参数
git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push