Git简介、安装和相关配置

 

目录

一、git、github、gitlab简介及教程分享

二、git及相关工具的安装

三、生成ssh key及多个key的配置

四、git config 配置(多用户)

 

 

 

正文

一、git、github、gitlab简介及教程分享

 

Git 是一款免费、开源的分布式版本控制系统。

Git官方手册(英文):https://git-scm.com/book/en/v2

这里有详细的使用说明。

 

Git教程推荐:

  1. 推荐廖雪峰的Git教程,号称史上最浅显易懂的Git教程:https://www.liaoxuefeng.com/wiki/896043488029600
  2. 另外推荐一个学习git的网站,以玩游戏的方式学习git操作:https://learngitbranching.js.org/

 

github和gitlab是两个git托管服务网站

github也是全球最大的开源社区

Git只是GitHub上用来管理项目的一个工具。

github还有很多其他的用途

(1)下载学习优秀的开源项目

(2)多人协作

(3)搭建博客、个人网站

(4)Gitbook写书写文档

 

GitLab和GitHub的区别就是私有仓库免费。适合公司项目。

 

 

 

 

二、git及相关工具的安装

  • Windows上安装Git
  • Mac OS上安装Git
  • Linux上安装Git

 

安装教程:

https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496

安装包下载地址:https://git-scm.com/downloads

 

 

 

 

三、生成ssh key及多个key的配置

 

为什么要配置公钥和私钥?

git使用https协议,每次pull push都要输入密码。使用git协议和ssh密钥,可以省去这个麻烦。

我们本地生成一对公钥和私钥。把公钥添加到github或gitlab。

 

 

ssh key 配置步骤:

 

1.首先打开github网站settings SSH keys  看下说明

https://github.com/settings/keys

https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh

https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

2. 查看电脑上是否已经生成过ssh key

查看ssh key的两种方式:

(1)打开电脑用户目录下的 .ssh文件夹

本机示例:C:\Users\shawang\.ssh

 

 

 

(2)git bash 命令查看

进入.ssh文件夹

cd ~/.ssh

 

 

 

 ~表示用户目录

ls 查看文件

 

 

 

 

如果.ssh里面有密钥文件,看下是不是自己以前生成过的key,并且自己的github或gitlab用户中心里面是否添加了对应的公钥,如果你不知道或不确定,那就重新弄一个。

如果有,并且可以用,那就跳过生成这一步。

如果没有.ssh文件夹或.ssh里面没有文件,那就生成一个(后面有生成方法步骤)。

 

(3)查看github或gitlab 是否添加SSH Key

a. 打开github或gitlab网站,登录(如果没注册要先注册再登录) 

b. 点击用户头像菜单->Settings

 

 

c. 点击Settings界面的左侧菜单: "SSH and GPG keys"

 

 

 

如果ssh keys列表没内容说明从未添加过ssh key,如果有内容,也有可能是以前添加过其他电脑上的公钥。比如个人电脑,以前公司电脑等等。这里可以添加多个key,连接多台电脑。有时候git拉取代码或提交代码失败很可能是因为这里配对失败。所以要确认当前操作的电脑上的ssh key公钥是否添加到了这里。如果不能确定,很简单,重新生成一个ssh key,并添加。

  

 

3. 生成一个新的ssh key

这里我演示一下生成2个key的步骤。一个用于github,一个用于gitlab.

 

首先你得有github或gitlab账号(邮箱),没有的话先注册一个,或让公司开通一个。

 

电脑上任意处右键菜单git bash打开git命令窗口

输入命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

-t 类型 -b 长度 -C 注释

-C后面输入你的github账号里的邮箱

本机示例如下:

第1步:

 

 

 

第2步:

 

这里要注意,如果你只需要1个key,那么可以使用默认值,enter进入下一步。如果要生成多个key,就要修改默认值。如下:

 

 

 

默认文件是:/c/Users/shawang/.ssh/id_rsa

改成:/c/Users/shawang/.ssh/id_rsa_github

id_rsa_github这个名字可以自己随意命名。下一个key我会命名为id_rsa_gitlab。

 

第3步:设置密码(可按enter键跳过)

第4步:确认密码(可按enter键跳过)

 

 

 如截图所示就是生成成功了。

 

查看ssh key的两种方式:

(1)打开c盘->用户->shawang(自己的用户目录)->.ssh文件夹

 

 

能看到生成了这两个文件,id_rsa_github.pub是公钥,要添加到github(gitlab)网站上。

(2)git bash命令查看

先定位到用户目录下.ssh文件夹

cd ~/.ssh

 

 

 查看内容

ls

 

 

 

 

 4. 复制公钥

复制公钥的两种方式:

(1)电脑上打开.ssh文件夹里的公钥文件(.pub后缀),用编辑器打开,全选复制内容

(2)在git bash里打印公钥

cat id_rsa_gitlab.pub

  

选中内容并按enter键复制

 

5. 添加公钥到github或gitlab网站

在github或gitlab的settings SSH keys里面添加一个key

github 添加ssh key 如下:

 

 

 

 

 

gitlab 添加ssh key如下:

 

 

 

 

注意:保存多个key的关键在于不要使用默认的命名。再加上.ssh里面config文件的配置。

 

刚刚生成了一个gitlab的key,现在再生成一个github的key

 

 

 

 

 

现在能看到.ssh文件夹里出现了两对公钥私钥

 

 

 

 

 

 

.ssh config配置

 

因为有两对密钥,所以现在要配置一下config

在.ssh下新建一个config文件(如果没有的话)

 

参考:http://gitlab.knxdevelop.com:8888/help/ssh/README#locating-an-existing-ssh-key-pair

参考:https://www.cnblogs.com/popfisher/p/5731232.html

 

本机ssh config示例:

 

# gitlab.knxdevelop.com
Host gitlab.knxdevelop.com
  Hostname gitlab.knxdevelop.com
  User shawang
  Port 2222
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_gitlab

# github
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_github
  PreferredAuthentications publickey
  User cathywang

  

 

ssh测试

需要网络良好才能测试成功

ssh -vT git@github.com

-v是指显示测试过程

git@后面的内容是测试的服务器,比如gitlab.knxdevelop.com

 

ssh连接服务器失败,但是服务器ip能够ping通

检查端口,ssh默认端口是22,如果这个端口被修改过,就要配置端口参数

 

 

 

 

四、git config 配置(多用户)

参考文章:https://segmentfault.com/a/1190000019714862

 

git config user一定要设置吗?为什么?

我尝试了一下,就算没有设置相应的user(只要有就可以),一样可以提交代码,但是提交的用户名称不对。所以需要设置多个用户。

 

按目录配置多用户

用户目录 ~/ 下的三个git配置文件

~/.gitconfig

[includeIf "gitdir:~/self-workspace/"]
    path = .gitconfig-self
[includeIf "gitdir:~/workspace/"]
    path = .gitconfig-work

~/.gitconfig-self

[user]
    name = cathy1024
    email = 2136946914@qq.com

~/.gitconfig-work

[user]
	name = shawang
	email = cathywang@knx.com.cn

 

针对单个项目的git user配置

git bash 定位到当前项目

输入命令:

修改user.name

git config user.name "cathy1024"

修改user.email

git config user.email "2136946914@qq.com"

如图所示:

 

 

 

 

 

 

 

 

结束

谢谢!

 

posted on 2020-04-20 14:31  白小鸽  阅读(249)  评论(0编辑  收藏  举报