1)Git、SourceTree和Gitlab三者之间关系

简单来说,Gitlab是存储在远端的代码,git是本地代码与远端代码沟通的桥梁,但git是完全命令行模式,而SourceTree则是git的界面化的Git客户端。

2)创建公钥和私钥

==>创建公钥和私钥的目的

使用git bash命令生成gitlab服务端和本地git相互传输时所需要校验的公钥和私钥,公钥用来配置gitlab,私钥用来配置SourceTree。

==>创建公钥和私钥的方法

->设置git的user.name和user.email

$ git config --global user.name "xxx"
$ git config --global user.email
"111@qq.com"

->生成SSH密钥过程

A.打开git bash(直接在桌面右键(只要安装了git就有)),输入cd ~/.ssh

 

如果出现的是上面的界面,则表示已经创建了SSH密钥,但是如果出现的是”no file”的字样,则表示的是还没有创建相应的SSH密钥。

B.生成密钥

$ ssh-keygen -t rsa -C “11111@qq.com”

这是最核心的命令,注意点:“ssh-keygen”中间是没有空格的,输入该条命令后,大约要按3到4次回车,中间如果要求要输入相应的密码,不用管,直接回车就行。

 

如果经过3到4次回车后,出现上面的界面,则表示的是SSH密钥创建成功。

==>在电脑上找到创建好的SSH密钥

我所创建的SSH密钥在

 

注意:当我们创建完成SSH密钥后,只有两个文件,分别是id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥,是用来配置SourceTree的,而id_rsa.pub是公钥,是用来配置Gitlab的。

3)在Gitlab上配置公钥

打开Gitlab(网址打开,输入用户名和密码)

 

选择最后的”Profile Settings”,出现如下界面

 

点击“SSH Keys”,出现如下界面

 

在这个界面需要填写的就是Key(Title是可以随便写的),而这里的Key就是要填写的是我们刚刚生成的SSH密钥的公钥,也就是id_rsa.pub文件中的内容,直接使用记事本打开,复制里面的内容到Key中,Title随便写点后,点击Add Key后,就会在该页面的下面出现

 

表示此时GItlab的SSH公钥已经配置完成。

4)在SourceTree上配置私钥

打开SourceTree,选择工具-->选项-->一般,出现如下界面

 

注意,这个页面的下半部分还有内容,在配置SourceTree的时候,该页面下半部分的内容是不变的,所有需要操作都在上面的截图中。

如果打开该页面,“默认用户信息”两项没有填写的,先填写(注意全名)。

最核心的部分就是“SSH客户端配置”,先不要管“SSH密钥本地路径”,先将”SSH客户端”选择成OpenSSH一项(注意必须是这项)。当我们选择了OpenSSH后,此时“SSH密钥”就会自动的定位到本电脑上的SSH密钥的路径位置,如果没有定位,则直接自己填写。

5)Gitlab和SourceTree联合使用

==>Gitlab上创建新的仓库

点击Project-->New Project后出现如下界面:

 

输入相应的Project Path、Project name、Project description、Visibility level四项后,点击“Create project”后,就会出现如下界面

 

在新创建的仓库项目中,有几点需要注意:一是新建的仓库地址(在新创建的空仓库时,就是使用的是SSH协议),二是在下面提供了该Gitlab下关于“你”的相应的用户信息,如果不知道用户名和邮箱是不能在本地电脑上创建SSH密钥的。到达此不后,我们所要关心的已经不是用户名和邮箱了,真正要关心的则是新仓库的地址(这个仓库地址才是核心)。

==>SourceTree创建新仓库

点击左上角的“克隆/新建”,选择“创建新仓库”,这里需要填写的内容有“目标路径”、“名字”两项。

“目标路径”:首先现在本电脑上创建一个文件夹,该文件主要是用来存放你需要将其存放到Gitlab上的(这里也可以是网络地址,一般是要将本地电脑上的文件项目发布到Gitlab上,我建议新建一个文件夹是为了安全考虑,如果不新建文件夹,也可以直接在项目文件上直接操作也可)。

 

点击“创建”后,出现如下界面:

 

出现如下界面,不要管。

我们现在bb文件夹中,随便创建一个文本文档(也就是一个随便的文件)。

 

此时点击左上角的“提交”后,出现如下界面:

 

很显然,aa.txt是还没有进行暂存的,当我们将“为暂存文件”前面打钩后,出现如下界面:

 

也就是aa.txt变成了“已暂存文件”。点击左上角“提交”后,下面的编辑内容随便输入一下(这是表示的是修改描述信息)。

 

点击提交后,此时就会出现如下界面:

 

很明显的是,已经将aa.txt提交到了master主分支了,在分支一项中出现了master。

==>SourceTree创建远程仓库

点击右上角的“设置”:

 

不要出点击“远程”,是不会显示相应内容的,点击“设置”后,出现如下界面:

 

点击“添加”后:

 

远端名称:可以随便输入,也可以使用默认远端(在默认情况下,是origin);

URL/路径(核心):该路径就是Gitlab上刚创建的新仓库的地址(git@1.1.1.1:gaozhaoxuan/qqqqq.git),该地址一定要填对。点击“确定”后,就会出现的界面:

 

在远程选项上,就会出现刚刚创建的远程仓库。

6)在SourceTree上实现提交本地文件和获取远端Gitlab文件

==>由SourceTree将本地文件推送到Gitlab上

点击“推送”后:

 

点击“确定”后,就直接将其推送到Gitlab相应的新建的仓库地址下面。

 

这个”55M”就表示的是,已经将文件从SourceTree推送到Gitlab上了。

==>从Gitlab上将项目拉取(pull)下来

直接点击“拉取”,选择相应的分支就可以拉取了。