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 同级目录下 创建 one.txt
提示 one.txt没有加入到暂存区
git add .
将所有修改过文件 添加到暂存区
git commit -m"提交更改的描述 "
每一次提交都是一个节点 类似一颗后悔药
git log
查看版本记录git log --oneline
显示版本记录 (记录控制在一行)
git checkout
节点id前7位即可 – 回退指定节点idgit log -p
查看修改文件的详细内容
默认标签添加到 最近的节点上 即最新commit的节点上
给指定节点 打标签git tag -a v0.2 -m "0.2版本" 节点id
git show 标签名
查看某个标签的详细信息
git log --all --graph
图形化展示所有版本记录
按 q 键退出
三种状态
modified 修改
staged 暂存
committed 提交
合并分支
git checkout -b
新建的分支名
在当前节点创建新的分支,并切换到该分支
对上图的解释
-
git init test3
初始化仓库 在test3的文件下创建 git仓库 -
cd test3
touch test.txt
进入到test3下, 创建test.txt文件 -
git add .
所有文件修改添加到暂存区 -
git commit -m "master第一次提交"
master 提交版本 - 再次修改文件
git add.
git commit -m "master第二次提交"
-
git tag -a v1.0 -m "1.0版本"
给定最新节点 一个标签 名字: v1.0 解释是 1.0版本 - 再次更改文件
git add. && git commit -m "master第三次提交"
- 发现第二次提交有bug 需要回退到第二次提交
git checkout bfa887
-
git log --oneline
查看所有历史节点 -
git checkout -b bigBug
在当前节点新建节点名为 bigBug的分支并移动到该分支上 - 修复好bug
git add. && git commit -m "已经修复master第二次提交的bug"
- 回到主分支上
git checkout master
- 继续回到主分支上开发 添加新功能
git add . && git commit -m "master第四此提交"
-
git log --all -graph
查看所有历史版本
- 将bigBug 分支上的代码 合并到 master上
git merge bigBug
合并出现了代码冲突的问题 打开文件, 手动解决 这个问题
远程仓库
***云 在上面创建一个仓库https://gitee.com/ljxing/testGitee
git remote add 远程仓库名称 远程地址
git remote -v
列出当前git 连接的所有远程仓库
git push -u 远程仓库名 master