一般本地连接远程github仓库的方法有两种,通过http和ssh(在远程github上能找到对应的http和ssh),一般情况下,使用http在push代码时需要输入用户名和密码,但是ssh配置好后并不需要用户名和密码。所以一般用ssh会更加的方便,但是这个是需要设置的。接下来针对这两种情况进行阐述,并给出如何在两者之间进行切换。为了完整性,本文从github仓库的创建开始讲起,读者可以根据需要读部分内容。

1.github仓库的创建

在github上注册自己的信息,然后点击右上角”+”号,选择”Create a new repository”,如下图所示:

sourcetree 本地仓库与远程仓库_github

然后输入自己的github仓库的名称,description自己随便写点就好,主要是为了能看一下就知道github仓库是干哈的。这里我选择的是public仓库,因为private需要money,一方面是为了大家都能看到我的代码,一方面是我没钱,所以只能创建public仓库(后者是主要原因,哈哈。。。。。)。如下图:

sourcetree 本地仓库与远程仓库_用户名_02

创建完成后出现如下页面;

sourcetree 本地仓库与远程仓库_github_03

这个页面的很重要,这里给了你很多的命令的使用方式(由于我前面一个已经建立了仓库,看不到这个页面了,所以我新建了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

sourcetree 本地仓库与远程仓库_github_04

如果里边有文件,说明曾经创建过。则可以删掉,或是直接利用现成的东西,但是由于后面需要密码,可能曾经的会有密码,所以还是全部删掉重新创建。这里重新创建的。

2)在1)的目录下执行:ssh-keygen –t rsa –C  “xxxx@qq.com”  #这里需要填写一个邮箱,最好是真实有效的。如下:

sourcetree 本地仓库与远程仓库_git_05

3)将刚才生成的.ssh文件下的id_rsa.pub文件打开,复制里边全部的内容,打开github并登录,

sourcetree 本地仓库与远程仓库_git_06

通过第一步找到settings进入当前页面,title可随便写,把刚才复制的id_rsa.pub的内容复制到key下的文本框中。点击add ssh key。

4)测试是否设置成功

输入以下命令,如果出现下面的字样,说明配置成功。

sourcetree 本地仓库与远程仓库_用户名_07

如果你再输入 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 将出现你的访问方式,如下图:

sourcetree 本地仓库与远程仓库_github_08

出现这种情况,说明你使用的是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了。怎么切换呢,看:

sourcetree 本地仓库与远程仓库_用户名_09