基本概念和环境搭建
大约 4 分钟
基本概念和环境搭建
一、不使用版本控制工具带来的问题
大家在开发项目的过程中,如果直接在本地系统上维护源码目录,经常会碰见下面的问题:
- 把源代码的目录或文件,写了好久的代码没了!
- 按需求添加新功能,写了好多代码,但净是,想回到之前的版本,开始大面积删除或者屏蔽代码,很崩溃,如果此时有个代码版本管理工具,该多好!
- 新功能添加完了,编译运行一切很顺利,功能也正常,但有时候运行会出现以前没见过的运行错误,非必现的,想查看和之前代码的差异,看看都在哪些源文件中修改了代码,该怎么办?
- 团队开发项目,但是项目成员都不在一起,各自写的代码该如何添加到一块,还能避免错误,不会出现谁把谁的代码给覆盖了?
二、git分布式介绍
1.SVN集中式版本控制系统
没有本地仓库,只有远程仓库;
- 所有的版本控制相关操作都是在SVN Server上进行,
- client和server必须通过网络连接,client才能发送处理请求以及访问server上代码,
- client没有本地仓库,只能提交到远程仓库

2. git分布式版本控制系统
有本地仓库和远程仓库;
不需要网络,
可以由各自的本地仓库管理代码版本,本地仓库记录了本地所有的代码的修改和提交。
由于有了本地仓库,客户端可以利用本地仓库恢复以前任意阶段的代码版本

最后合并时,大家把各自本地的代码统一的提交到git server上,就可以进行代码的合并了

三、GitHub介绍
新建一个HelloWorld项目

- 这里有一个Branch选项,可以理解为代码的不同版本,默认是main分支。可以创建更多的分支进行管理,各分支代码也可以合并

- commit:现在只提交了一个文件
- branch:现在只有master分支
- contributor:现在有一个贡献者

SSH是远程的加密传输,
四、windows搭建git环境
总共四个步骤:本地客户端生成公钥、配置本地远程通信的公钥、验证通信、配置用于标识客户端的用户名和邮箱
下载软件:https://git-scm.com/download/win
git bash和github之间是通过ssh加密传输的,因此每个客户端都需要配置公钥,一个公钥对应一个客户端
【step 1】打开git bash,生成公私密钥,在github上进行公钥配置
输入如下命令:
ssh-keygen -t rsa -C "github注册邮箱"

【step 2】生成公钥id_rsa.pub后,拷贝公钥内容到github远程仓库

到这里,客户端就可以和github服务器通信了
【step 3】输入命令验证是否可以通过配置的公钥通信
ssh -T git@github.com

【step 4】配置客户端邮箱和用户名,以后你在github上提交的任何代码文件,都会附带客户端的邮箱用户名信息,用于标识提交文件的开发者,如下
git config --global user.name "xxx"
git config --global user.email "xxxxx@qq.com"
五、ubuntu搭建git环境
首先安装git并打开ssh服务
sudo apt install git
ps -elf|grep ssh #验证sshd是否启动
输入命令配置环境
ssh-keygen -t rsa -C "github注册邮箱"
ssh -T git@github.com
git config --global user.name "xxx"
git config --global user.email "xxx@qq.com"