版本控制
-
什么是版本控制
-
版本控制(Revision control)是一种在开发过程中用于管理我们对文件、目录等工程内容修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术(多人开发就必须使用版本控制,否则代价成本很大)。
-
特点
(1)实现跨区域多人协同开发 (2)追踪和记载一个或者多个文件的历史记录 (3)组织和保护你的源代码和文档 (4)统计工作量 (5)并行开发、提高开发效率 (6)跟踪记录整个软件的开发过程 (7)减轻开发人员的负担,节省时间,同时降低人为错误 (8)简单地说就是用于管理多人协同开发项目的技术。
-
没有进行版本控制或者版本控制本省缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
-
-
常见的版本控制工具
-
主流的版本控制器有如下这些:
(1)Git (2)SVN(Subversion) (3)CVS(Concurrent Versions System) (4)VSS(Micorosoft Visual SourceSafe) (5)TFS(Team Foundation Server) (6)Visual Studio Online
-
版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),现在影响力最大且使用最广泛的是Git与SVN。
-
-
版本控制分类
- 本地版本控制
- 集中版本控制 SVN
- 分布版本控制 Git
常用的Linux命令
(1)cd改变目录
(2)cd..回退到上一个目录,直接cd进入默认目录
(3)pwd显示当前所在的目录路径
(4)touch新建一个文件,如touch index.js,就会在当前目录下新建一个index.js
(5)rm:删除一个文件,rm index.js,就会把Index.js删除
(6)mkdir新建一个目录,就是新建一个文件夹
(7)rm -r删除一个文件夹,rm -r src删除src目录
(8)mv移动文件,mv index.html src
(9)reset 重新初始化终端/清屏
(10)clear清屏
(11)history查看命令历史
(12)help帮助
(13)exit退出
(14)#表示注释
Git相关
-
Git配置
-
Git命令
(1)git remote -v 查看远程仓库地址 (2)git remote rm origin aqaSDFGUIOP\删除当前远程仓库地址 (3)git remote add origin url 添加新的远程仓库地址 (4)rm -rf .git/ 删除git (5)git push origin master 将文件推送到远程仓库 (6)git diff 比较的是工作区与资源库的不同 (7)git diff --staged(比较的是暂存区和资源库的不同) (8)git log 查看提交日志(显示从最近到最远的日志) (9)git log --oneline 查看提交日志 在一行显示 (10)git reset --soft Head~ 回到暂存区 (11)git restore --staged 还原 (12)git revert 恢复文件的历史版本
-
关于推送到远程仓库
(1)新建一个仓库,将项目推送到远程仓库里面(提交是按照每次commit的时间来定的) (2)git bash 进入当前文件夹 (3)git remote -v 查看有没有关联远程仓库 (4)git remote add origin url 关联远程仓库 (5)git add . (6)git status 查看状态 (7)git commit -m "信息": 提交到当前的本地仓库(-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录) (8)git push origin master -u
注意:要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。Git支持多种协议,包括https,但ssh协议速度更快。
-
Git与SVN的区别
Git命令相关细节
-
移动
-
恢复删除
- 先撤回commit到暂存区 然后再撤回到工作区,然后再还原之前的状态
- git reset --soft HEAD~
- git restore --staged src/views/my/index.vue
- git restore src/views/my/index.vue
- 从commit直接撤回到工作区之前 git reset --hard Head~
- 先回到提交之前的状态 git checkout HEAD --src/views/my/index.vue
- 恢复文件的历史版本 git revert 7654321c
- 指向之前的某次提交 git reset --soft 65423231c2
- 先撤回commit到暂存区 然后再撤回到工作区,然后再还原之前的状态
-
保存 恢复 删除 工作进度 git stash
- git stash save “修改状态” 保存工作状态
- git stash list 展示保存工作状态的列表
- git stash show -p stash@{0} 对比此时工作状态跟仓库文件的区别
- git stash apply stash@{0} 恢复工作状态
- git stash drop stash@{0} 删除工作状态
注意
:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。 -
工作区和暂存区
- 工作区(Working Directory),就是你在电脑里能看到地目录。比如我的git文件夹就是一个工作区。
- 版本库
- 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
- Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
- 指向之前的某次提交 (回退到上一个版本,最新那个版本已经看不到了,往上找版本号,版本号没必要写全,git会自动去找)git reset --hard 35a6,穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
-
管理修改
-
撤销修改