-
1.Git学习路径
2.Git版本控制介绍
2.1 版本控制应该具备的功能
2.1.1 协同修改
多人可以同时修改相同的文件而不会出现丢失情况。
2.1.2 数据备份
能够将每次修改的数据备份起来以便后续恢复。
2.1.3 版本管理
保存每个版本的修改信息,但是不涉及到重复数据,节省空间,SVN采用增量式管理,Git采用文件系统快照方式。
2.1.4 权限管理
- 对团队开发人员进行权限设置
- 对团队外的开发人员进行审核管理(Git独有功能)
2.1.5 历史记录
- 查看修改人、修改时间、修改内容、日志信息。
- 从当前版本恢复到某一个历史状态
2.1.6 分支管理
允许开发团队多条生产线同时推进任务,进一步提高效率。
2.2 版本控制工具
2.2.1 集中式版本控制软件
- SVN(优秀代表),CVS,VSS等等
- 管理模式(服务器【1】 <-----------> 客户端【N】)
- 缺点
- 所有版本信息存储在服务器,一旦出问题,所有客户端无法再协同工作(单点故障)
- 必须联网操作,否则无法进行版本管理的任何操作
2.2.2 分布式版本控制软件
- Git(优秀代表),Mercurial,Bazaar等等
- 管理模式(客户端【N】 <-----------> 客户端【N】),依然推荐使用远程库管理
- 优点,能避免单点故障,任何客户端节点都是一个独立的版本库。
- 几乎所有操作都在本地执行(无需联网)
3.Git简介
3.1 Git发展史
3.2 Git介绍
官网:Git
Logo:
最新版本:2.21.0
3.3 Git优势
3.3.1 大部分操作无需连网,在本地完成
3.3.2 保证完整性
3.3.3 尽可能保存每个版本信息
3.3.4 分支操作快捷流畅
3.3.5 与Linux命令全面兼容(Git和Linux系统都是Linus开发的)
3.4 Git安装
3.4.1 官网下载Git安装包(根据系统选择对应安装版本)
3.5 安装过程
其他使用默认选项即可
3.6 Git结构图
3.7 Git代码托管中心
- GitHub.com(推荐,最出名的代码托管中心,几乎全世界开源项目都在使用,但国外服务器可能被墙)
- Gitee.com(学习推荐,码云,国内比较出名)
- Gitlab(公司内部推荐,可自行搭建私有远程库)
4.Git命令
4.1 Git账号配置
配置全局用户名
git config --global user.name "xxx"
配置全局邮箱
git config --global user.email xxx
查看配置信息
git config --list
SSH登录方式:
- 使用命令生成ssh密钥
ssh-keygen -t rsa -C youremail@example.com
三次回车
2、把公钥复制到gitee上配置好
$ cat /c/Users/你的用户名称/.ssh/id_rsa.pub
3.复制SSH链接,clone
4.2 本地库初始化(git init)
4.2.1 基本命令格式
git init
4.2.2 命令执行效果
4.2.3 命令作用
主要用来初始化一个空的git本地仓库。执行完上面的命令,当前目录下会自动生成.git隐藏文件夹,该隐藏文件夹就是git版本库
4.3 克隆远程库(git clone)
4.3.1 基本命令格式
git clone http://域名/个性名或项目分组/项目名称.git
4.3.2 命令执行效果
4.3.3 命令作用
从远程库克隆(下载)一份完整代码,作为本地库。
4.4 添加文件跟踪(git add)
4.4.1 基本命令格式
git add filename
4.4.2 命令执行效果
4.4.3 命令作用
将增删改的文件加入到暂存区,但注意并未进行提交到本地库。
使用 git add
4.4.4 其他参数或格式
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A :是上面两个功能的合集(git add --all的缩写)(最常用的省事命令)
4.5 查看本地库状态(git status)
4.5.1 基本命令格式
git status
4.5.2 命令执行效果
- 第一种状态(刚修改或添加文件)
- 第二种状态(已将修改添加到暂存区)
- 第三种状态(无任何修改可以提交)
4.5.3 命令作用
查看当前工作区和暂存区文件的状态。
4.6 提交修改到本地库(git commit)
4.6.1 基本命令格式
git commit -m '本次提交描述信息'
4.6.2 命令执行效果
4.6.3 命令作用
将暂存区里的改动给提交到本地的版本库。
4.7 将本地库内容推送给远程库(git push)
4.7.1 基本命令格式
git push [remote-name] [branch-name]
注:remote-name表示远程库名,branch-name表示分支名,若不写,默认当前远程库和当前分支
git remote命令可查看当前远程库名,git branch命令可查看当前分支名
4.7.2 命令执行效果
4.7.3 命令作用
将本地版本库的分支推送到远程服务器上对应的分支。
4.8 拉取远程库最新内容到本地库(git pull)
4.8.1 基本命令格式
git pull [remote-name] [branch-name]:[local-branch-name]
4.8.2 命令执行效果
4.8.3 命令作用
将远程库的内容拉取到本地库进行同步。