版本管理工具GIT篇
1、版本管理工具干什么用的?git
- 备份文件 做用同U盘 网盘
- 保存天天的成果 如果本地文件丢失 损坏 找备份
- 如 打游戏时候的存档
- 记录历史
- 网盘 U盘存储的是文件最新状态 历史操做没有
- 做用同 history命令 找到历史操做的版本 记录 修改时间 修改内容等(提交时候的备注)
- 回滚到历史版本
- 如果当前提交了不想要的操做 能够找到历史版本 把状态恢复到以前操做过的任意历史的状态
- 托管文件能够多端共享
- 效果相似于 icloud云备份 能够在不一样的设备上 拿到相同的文件
- 场景一在公司提交了代码以后 回到家 登录本身的帐户 pull 到本地
- 管理员建立仓库 搭建好项目环境以后 团队成员 pull到本身的设备 共同开发
2、版本管理工具发展历史github

3、GIT下载和安装windows
- 安装GIT环境---windows
- 下载客户端 https://desktop.github.com/

- 安装

- 安装GIT环境---Linux
- CentOS下 软件包管理器


- git --help 查看帮助

- untu下安装 同理 apt-get -update 更新源 apt-get install git 安装git


- Git --help查看帮助

4、注册帐户服务器
- 登陆官网

- 注册

- 选择套餐

- 发送验证邮件

- 登陆账号 看到本身的项目

5、新建一个项目编辑器
- 注意点

- 建立完成

6、Linux下检出项目到本地工具
- Clone or download

- 克隆到本地

- 检出到本地以后 能够在本地工做区 开发 提交...
7、Linux环境下第一次提交项目 测试
- 工做区修改文件 wq保存退出

- git status 查看工做区状态

- git add 对文件创建 跟踪 查看状态

- git commit 提交

- 提交以后 git status查看工做区状态 (目前只是在本地工做区的操做 还未提交到github)

- git push到 远程github上

- 登陆github查看 推送成功

8、windows环境下检出项目和提交项目spa
- 安装好本地客户端以后 登陆 本地客户端 在github上

- 选择本地工做区目录

- 克隆到本地以后

- 在本地 编辑器打开文件

- 本地新建文件 编辑


- 本地工做区修改文件 提交 同步

- 同步到github


9、关于代码冲突命令行
- 解决冲突 团队合做 代码冲突 工具没法判断 取舍
- Linux下如何解决冲突

a) git pull 把最新的代码拉下来 合并冲突指针

b) git status 查看当前工做区状态

c) 查看变动记录 git diff

d) 打开冲突文件 人为解决冲突

e) 本地工做区解决完冲突以后 git status git add git commit git push 推送到github
f) 若是有后续操做 本地工做区 须要先将git pull 将远程上的最新的文件拉到本地 再进行后续操做
- Windows下如何解决冲突?
a) windows下冲突

b) 本地编辑器打开冲突文件 先手动解决冲突

c) 同步

或者是

10、回滚到历史版本
a) 场景:新老同事 最新版本的代码若是修复的话代价太大 直接恢复到以前的版本
b) 回滚
- git log 查看文件历史提交

- 须要回滚到哪一个时间点 复制commit id git reset --hard commit id

hard:是当前版本的指针 这个指针指向哪一个时间点的 commit id 就至关于代码回退到那个时间点的状态
- git reflog 列出当前版本以前的全部版本号

- 还原到最新版本

11、创建里程碑 (软件上的版本号)
- 里程碑:软件上的版本号 每个版本号表示一段开发的完结 以及下一阶段工做的开始 软件发布以后 会带着对应的版本号
- 创建里程碑 方便于把一个完整的软件发布出去 也方便于快速的定位某一个版本的某个问题
- 登陆github


- 后期维护的时候 找到对应的版本 能够下载源码 能够回退等等
12、分支开发之分支合并
- 应用场景:新反馈了一个bug可是当前master(主)分支已经推送了新的功能的代码 因而呢 就不能在主分支发布 有可能把没测试过的代码带到外面去 建立新的分支 以已经发布的代码为基础修复bug 修复以后 再合并分支
- 建立新的分支 当前工做区切换到分支

- merge 合并分支



十3、分支开发之分支合并

十4、关于多人合做
- 多用客户端和工具 少用命令行 除非是在Linux服务器上直接开发
- 每次提交前 diff本身的代码 以避免提交错误的代码
- 下班回家前 整理好本身的工做区(哪些代码是必须的 哪些是调试代码等等)
- 并行的项目 使用分支开发
- 遇到冲突的时候 搞明白冲突的缘由 千万不要随意的丢弃别人的代码
- 产品发布以后 记得打tag 方便未来拉分支修bug