一般本地连接远程github仓库的方法有两种,通过http和ssh(在远程github上能找到对应的http和ssh),一般情况下,使用http在push代码时需要输入用户名和密码,但是ssh配置好后并不需要用户名和密码。所以一般用ssh会更加的方便,但是这个是需要设置的。接下来针对这两种情况进行阐述,并给出如何在两者之间进行切换。为了完整性,本文从github仓库的创建开始讲起,读者可以根据需要读部分内容。
1.github仓库的创建
在github上注册自己的信息,然后点击右上角”+”号,选择”Create a new repository”,如下图所示:
然后输入自己的github仓库的名称,description自己随便写点就好,主要是为了能看一下就知道github仓库是干哈的。这里我选择的是public仓库,因为private需要money,一方面是为了大家都能看到我的代码,一方面是我没钱,所以只能创建public仓库(后者是主要原因,哈哈。。。。。)。如下图:
创建完成后出现如下页面;
这个页面的很重要,这里给了你很多的命令的使用方式(由于我前面一个已经建立了仓库,看不到这个页面了,所以我新建了TE仓库,望悉知)。
最后有https和ssh,这个是项目在github上的唯一标识,下面的命令是叫你如何创建本例仓库,并将本地数据push到远程仓库。需要强调的是:
git remote add origin https://github.com/836304831/TE.git
这个命令是建立本地仓库与远程仓库的关联。当你在第一行选择ssh时,命令变成了:
git remote add origin git@github.com:836304831/TE.git 。
这两个命令是等价的。
git push -u origin master
该命令是将本地的代码push到远程,第一次使用需要使用-u,以后就可以不使用了。
一些常见的git操作命令:
从远程拉取分支到feature/20160620_hot_topic_713362分支
git clone git@gitlab.alibaba-inc.com:bendi/tfmind.git -b feature/20160620_hot_topic_713362
git branch 查看分支
git status 查看状态
从当前分支切换到feature/20160620_hot_topic_713362分支
git checkout feature/20160620_hot_topic_713362
提交修改套装
git add
git commit -m "..."
git pull
git push origin/feature/20160620_hot_topic_713362
保存修改,但不提交
git stash 将修改压栈
git stash pop 将压栈的修改,弹出到当前分支
将master分支的修改合并到当前分支
git merge HEAD master
2. 使用http访问远程github仓库
这个在配置的时候比较简单,只需要知道github仓库的地址就可以。
从远程拉取数据:git clone https://github.com/836304831/DistributionTimeSeriesAnalysis.git。修改按照上面给出的提交修改套装就可以了,这里不在赘述。
3. 使用ssh访问远程github仓库
使用这个跟通过http的使用方式是一样的,但是ssh在提交代码时不需要输入用户名和密码,但需要先配置ssh。下面讲解一下如何配置ssh连接github。
1)切换到~ssh
如果里边有文件,说明曾经创建过。则可以删掉,或是直接利用现成的东西,但是由于后面需要密码,可能曾经的会有密码,所以还是全部删掉重新创建。这里重新创建的。
2)在1)的目录下执行:ssh-keygen –t rsa –C “xxxx@qq.com” #这里需要填写一个邮箱,最好是真实有效的。如下:
3)将刚才生成的.ssh文件下的id_rsa.pub文件打开,复制里边全部的内容,打开github并登录,
通过第一步找到settings进入当前页面,title可随便写,把刚才复制的id_rsa.pub的内容复制到key下的文本框中。点击add ssh key。
4)测试是否设置成功
输入以下命令,如果出现下面的字样,说明配置成功。
如果你再输入 ssh –T git@github.com出现are you sure you want to continue connecting(yes/no)? 输入yes,在执行上面的命令应该就能得到上面的结果了。
4. http和ssh访问方式的切换
至此,就可以通过这两种方式对github仓库进行访问了,那你怎么知道你当前使用的是那种方式访问呢,一种只你再push代码的时候需要输入用户名和密码,这个时候说明你用的是http访问,如果没有让你输入这些信息,那说明是ssh方式访问。要是没有要提交的代码还想查看使用的是那种方式该怎么办,别急,我来告诉你。使用命令:
gitremote –v 将出现你的访问方式,如下图:
出现这种情况,说明你使用的是ssh方式访问,这个地址对应github仓库中ssh的地址。
哥,我现在知道是使用这种方式,但我讨厌使用这种方式,我想使用http方式怎么办啊?别急,我的心情跟你是一样的激动。我一开始使用的是http,然后总是出现“unable to access https://github.com/.... Faile to connect togithub.com port 443”的错误,当时我还以为是github被封了,结果发现确实被封了,当时网址github.com都上不去,然后利用了某种方法可以访问github网站了(别问我是怎么解决的,呵呵),但是使用git pull ;git push依旧报上面unable to access的错。通过网上查找一些资料,配置ssh,切换到啥时候访问模式就ok了。怎么切换呢,看: