2021年5月19日——yaco
第一章 快速入门
1.1 什么是Git
Git是一个分布式的版本控制软件。
- Git是一个软件,类似于QQ、office、dota等安装到电脑上才能使用的工具‘
- 版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保留原历史数据。
- 分布式
- 文件夹拷贝(最原始的多版本控制方法)
- 本地版本控制(在本地进行版本控制)
- 集中式版本控制(使用一台机器进行版本的集中管理,一旦集中管理的机器挂掉,则整个系统就会瘫痪)
- 分布式版本控制(每一台机器中都存储有多个版本,一台机器=挂掉之后,并不会影响整个系统工作)
1.2 为什么要做版本控制
一个软件项目往往会有多个版本,版本之间的切换更改是经常发生的事,因此必须进行项目版本控制,方便进行回滚和修改
1.3 安装Git
详见:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
第二章 Git实战教程
2.1 第一阶段: 保证Git可以成功管理项目目录
想让git对一个目录进行版本控制需要以下步骤:
进入要管理的文件夹
-
执行初始化命令
git init
-
管理目录下的文件状态
git status 注:新增的文件和修改后的文件都是红色的
-
管理指定文件(红变绿)
git add 文件名 (添加单个文件进行git的管理) git add . (将当前目录下所有没有被管理文件加入git管理)
-
个人信息配置:用户名、邮箱(一次即可,往往在git第一次使用的时候需要配置)
git commit -m '描述信息'
-
查看版本记录
git log
2.2 第二阶段:扩展新的功能
- 首先新增了一个文件index.txt,加入版本控制v1
- 向index.txt文件中写入一句话,生成新的版本v2
- 以同样的方式生成版本3,最终会形成三个版本,v1为空文件,v2写了一句话,v3写了两句话
2.3 第三阶段: 多版本回滚的使用方法
-
当前所在的版本为v3,如果想要回滚到v2的操作
git log (查看v2版本号对应的hash值) git reset --hard 版本号
从当前版本回滚到之前的版本,可以发现git log少了v3,可以使用git reflog查看
-
当前所在版本为v2,现在计划从版本v2跳回v3
git reflog --查看当前版本之后的版本记录 git reset --hard 版本号
2.4 阶段性总结一
git init 初始化项目目录,使git介入管理
git add 将新建的文件或者修改后的文件加入git的管理范围,使文件名由红色变为绿色
git commit 提交归档为一个新的版本
git log 查看版本日志
git reflog 查看历史版本日志,包括当前版本之后的版本
git reset --hard 版本号
2.5 第四阶段:版本控制中存在的分支现象
2.5.1 分支
分支可以给使用者提供多个开发环境,意味着你可以把工作从开发主线上分离开来,以免影响开发主线。
2.5.2 紧急修复bug方案
2.5.3 命令总结
-
查看分支
git branch
-
创建分支
git branch 分支名
-
切换分支
git checkout 分支名
-
分支合并
git merge 要合并的分支 注意:切换分支主分支之后再合并
-
删除分支
git branch -d 分支名
2.5.4 工作流
2.6 使用GitHub进行不同机器上工作文件灵活切换
如何在公司和家中进行工作代码的灵活切换,随时随地都可以快乐的敲代码尼?
2.6.1 配置好Github环境,公司开发并提交至远程仓库
- 首先,需要注册github账号,并创建远程仓库
- 填上关键信息即可
- 生成仓库路径
-
首先使用git bash here给远程仓库起别名
git remote add gitstudy https://github.com/codeyc-azc/Yaco_gitstudy.git
-
然后向远程推送代码
git push -u gitstudy 分支名 注意:这里的-u可以省略
首次推送需要用户名和密码
2.6.2 回家继续开发
-
首先从github上,将公司上传的代码克隆下来到本地
git clone 远程仓库地址(内部已实现git remote add gitstudy 远程仓库地址)
2.6.3 回公司继续操作
2.6.4 工作示意图
2.7 阶段性总结二
-
添加远程链接(别名)
git remote add 别名 仓库地址
-
推送代码
git push 仓库别名 分支名
-
下载代码
git clone 仓库地址
-
拉取代码
git pull 仓库别名 分支名
-
保持代码提交整洁(变基)
git rebase 分支名
-
记录图形展示
git log --graph --pretty= format:"%h %s"