Git回顾

来源 : 表严肃 https://www.bilibili.com/video/av17603446 尚硅谷 视频内容 手自笔录

版本控制

一个软件有很多版本, 对这个软件每个版本进行控制, 以便能够回到某个节点上.
类似PS的历史记录可以回退.

版本控制分类

集中式版本控制

开发人员是客户端 文件和版本信息存在服务器上, 开发人员去向服务器操作
缺点: 单点故障问题 服务器宕机, 以前历史就没了
客户端保存的是当前状态

分布式版本控制
每一开发人员都是一个服务器 在本地上进行版本控制
解决了单点故障的问题

Git的优势

  • 大部分操作在本地完成, 不需要联网
  • 完整性保证
  • 尽可能添加数据而不是删除或者修改数据 每做一个新的提交都保存为新的版本不会删除旧的版本
  • 分支操作便捷 内部快照管理 创建移动指针
  • 与Linux命令兼容

Git的结构

工作区 : 写代码的地方 git add 添加到暂存区
暂存区 : 临时存储 git commit 添加到本地库
本地库 : 历史版本存储

局域网下 : GitLab

本地库和代码托管中心

本地库 push 到 远程库

团队中 从远程库中 clone下项目 (初始化本地库)

项目经理构建好项目, 将项目 push 到远程库, 程序员通过 clone 命令 下载到
本地库 此时程序员修改好代码后还不能向 远程库 push 代码 (没有权限)

远程库被修改后 项目经理 pull 拉取到自己的本地 再开发

团队外跨合作
首先fork

git基本使用

git init 当前项目下会新建一个git仓库

git status 查看当前仓库状态

Git回顾
在.git 同级目录下 创建 one.txt
Git回顾
提示 one.txt没有加入到暂存区

git add . 将所有修改过文件 添加到暂存区

git commit -m"提交更改的描述 "
每一次提交都是一个节点 类似一颗后悔药

git log 查看版本记录
git log --oneline 显示版本记录 (记录控制在一行)

git checkout节点id前7位即可 – 回退指定节点id
git log -p 查看修改文件的详细内容

Git回顾
默认标签添加到 最近的节点上 即最新commit的节点上
给指定节点 打标签
git tag -a v0.2 -m "0.2版本" 节点id

git show 标签名 查看某个标签的详细信息

git log --all --graph 图形化展示所有版本记录
Git回顾
按 q 键退出

三种状态

modified 修改
staged 暂存
committed 提交

合并分支

git checkout -b 新建的分支名
在当前节点创建新的分支,并切换到该分支
Git回顾
Git回顾

对上图的解释

  1. git init test3 初始化仓库 在test3的文件下创建 git仓库
  2. cd test3 touch test.txt 进入到test3下, 创建test.txt文件
  3. git add . 所有文件修改添加到暂存区
  4. git commit -m "master第一次提交" master 提交版本
  5. 再次修改文件 git add. git commit -m "master第二次提交"
  6. git tag -a v1.0 -m "1.0版本" 给定最新节点 一个标签 名字: v1.0 解释是 1.0版本
  7. 再次更改文件 git add. && git commit -m "master第三次提交"
  8. 发现第二次提交有bug 需要回退到第二次提交 git checkout bfa887
  9. git log --oneline 查看所有历史节点
  10. git checkout -b bigBug 在当前节点新建节点名为 bigBug的分支并移动到该分支上
  11. 修复好bug git add. && git commit -m "已经修复master第二次提交的bug"
  12. 回到主分支上 git checkout master
  13. 继续回到主分支上开发 添加新功能 git add . && git commit -m "master第四此提交"
  14. git log --all -graph 查看所有历史版本

Git回顾

  1. 将bigBug 分支上的代码 合并到 master上 git merge bigBug 合并出现了代码冲突的问题 打开文件, 手动解决 这个问题

远程仓库

***云 在上面创建一个仓库
https://gitee.com/ljxing/testGitee
git remote add 远程仓库名称 远程地址
git remote -v 列出当前git 连接的所有远程仓库

Git回顾
git push -u 远程仓库名 master

未待完续