git: ssh: connect to host localhost port 22: Connection refused 的问题
因为gitlab上要Git pull或者git clone,但是每次都出现这个问题。之前偶尔出现这个问题,但是只是偶尔,这是为什么呢?然后就开始搜索网上的解决方案了。
这个问题搜索网上很多答案,但是试过去都不行。
第一个是说openssh-server没有安装,因为我的电脑是mac,ps -e |grep ssh已经看到安装并且运行了。但是还是不行;
第二个方案说的是新建~/.ssh/config然后输入几行代码,这个也不行;
最后实行要崩溃了才发现我的clone链接是:git@xxxxx:xxxxxxx/xxxxxxxxx.git这种类型的,我之前用的都是http://开头的,所以就试了一下:http://xxxx/xxxx/xxxxx.git这种类型的链接,果然成功了,没有出现:ssh: connect to host localhost port 22: Connection refused了。
其中的原因可以看git的原理,有几种协议可以为git url,公司内网或者防火墙问题可能使得我不能使用:git@xxxxx:xxxxxxx/xxxxxxxxx.git这种形式,不过我先用外网试验再说吧,高手可以教教我,我还是git亲手……
Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.
而我之前用的链接是什么忘了,可能是混着用,所以偶尔出现这个问题。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、Command line instructions
Git global setup
git config --global user.name "yuhaiming"
git config --global user.email "227546781@qq.com"
Create a new repository
git clone git@211.149.168.208:yuhaiming/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder or Git repository
cd existing_folder
git init
git remote add origin git@211.149.168.208:yuhaiming/test.git
git add .
git commit -m”注释”
git push -u origin master
/
Ssh 不行 就是试试 http 一定行
/
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 新建一个远程的仓库(空的) 新建一个远程仓库 设置远程仓库的名字,并创建 设置仓库名切记:如果我们在创建远程仓库的时候添加了README和.ignore等文件,我们在后面关联仓库后,需要先执行pull操作
在本地创建一个本地的文件夹
在本地创建一个文件夹利用终端进入当前的文件夹目录
cd /Users/Sunshine/Documents/大神班/练习/0721/helloTest 用终端进入这个文件夹 初始化这个本地的文件夹为一个Git可以管理的仓库 git init 注意:Git会自动为我们创建唯一一个master分支 我们能够发现在当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。 初始化本地的仓库 将本地的仓库和远程的仓库进行关联 git remote add origin git@github.com:YotrolZ/helloTest.git 备注:origin就是我们的远程库的名字,这是Git默认的叫法,也可以改成别的; git@github.com:YotrolZ/helloTest.git是我们远程仓库的路径(这里我们使用的github) 将本地的仓库与远程的仓库进行关联这样我们就可以开始在本地的文件夹中做事了,这里我们先创建一个main.m文件
新建文件
touch main.m将新建的main.m文件添加到仓库(这样git就会追踪这个文件)
git add main.m把文件提交到仓库
git commit -m "新建了一个man.m文件" 在本地仓库新建一个main.m文件 把本地库的内容推送到远程 git push -u origin master 备注:origin:远程仓库名字; master:分支注意:我们第一次push的时候,加上-u参数,Git就会把本地的master分支和远程的master分支进行关联起来,我们以后的push操作就不再需要加上-u参数了 push到远程的仓库 我们用浏览器进入远程仓库中查看,发现远程仓库中也出现了mian.m文件 远程仓库中也有了一个main.m文件 假如某天我们又对mian.m文件进行了修改(这里我们在main.m文件里面添加了一句"hello world") 修改main.m文件 我们可以利用git status查看状态 查看状态将文件添加到Git版本库,实际上就是把文件修改添加到暂存区
git add main.m提交修改,实际上就是把暂存区的所有内容提交到当前分支。
提交修改 再次查看状态 git status 再次查看状态 把本地当前分支的最新修改推送至GitHub上的远程仓库 git push origin master 将修改后的main.m文件push到远程仓库 利用浏览器在远程仓库查看,我们看到已经将本地上的修改推送到远程仓库了 在远程仓库中查看初始化一个本地Git仓库(把本地的文件夹初始化成一个Git可以管理的版本库)
git init注意:需让命令行终端处在当前文件目录下
把文件添加到本地版本库
git add 文件名把文件修改提交到仓库
git commit -m "注释"关联一个远程仓库
git remote add origin git@github.com:YotrolZ/helloTest.git将最新的修改推送到远程仓库
git push -u origin master 注意: 1.每次push前要先进行git add 文件名 和 git commit -m "注释" 2.在第一次进行push时,我们加上-u参数,后期push时就不用再加-u参数 作者:YotrolZ 链接:http://www.jianshu.com/p/dcbb8baa6e36 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。