Git简介、安装和相关配置
目录
一、git、github、gitlab简介及教程分享
二、git及相关工具的安装
三、生成ssh key及多个key的配置
四、git config 配置(多用户)
正文
一、git、github、gitlab简介及教程分享
Git 是一款免费、开源的分布式版本控制系统。
Git官方手册(英文):https://git-scm.com/book/en/v2
这里有详细的使用说明。
Git教程推荐:
- 推荐廖雪峰的Git教程,号称史上最浅显易懂的Git教程:https://www.liaoxuefeng.com/wiki/896043488029600
- 另外推荐一个学习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
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命令窗口
输入命令:
1 | 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文件夹
1 | cd ~/.ssh |
查看内容
1 |
4. 复制公钥
复制公钥的两种方式:
(1)电脑上打开.ssh文件夹里的公钥文件(.pub后缀),用编辑器打开,全选复制内容
(2)在git bash里打印公钥
1 | 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示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 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测试
需要网络良好才能测试成功
1 | 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
1 2 3 4 | [includeIf "gitdir:~/self-workspace/" ] path = .gitconfig-self [includeIf "gitdir:~/workspace/" ] path = .gitconfig-work |
~/.gitconfig-self
1 2 3 | [user] name = cathy1024 email = 2136946914@qq.com |
~/.gitconfig-work
1 2 3 | [user] name = shawang email = cathywang@knx.com.cn |
针对单个项目的git user配置
git bash 定位到当前项目
输入命令:
修改user.name
1 | git config user.name "cathy1024" |
修改user.email
1 | git config user.email "2136946914@qq.com" |
如图所示:
结束
谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理