版本控制重要性
假设你是一个写方案的社畜,你老板叫你写一个方案
这个时候你会写一个方案,取名的时候你可能会这样写
然后发给领导,领导说,这个方案大体上已经没问题了,你再改一改其中的一些地方,再发给我就好了
如果这个时候你比较年轻,你可能会在原文件的基础上进行修改,然后发给领导,领导又说要改,然后你再改
后面不知道怎么回事,领导说,之前第一版好像也还行,要不你用第一版?
请问这个时候你该如何应对呢?
如果你有点工作经验,你会在之前那个文件基础上,再复制一份,像这样
如果你这样做过,说明你已经深深的体会到了,版本控制的重要性
but,这样做有很多问题
- 文件太多太杂乱
- 多文件,多目录,通过复制来进行版本控制,就很不优雅了
- 也不直观
- 无法协同
那么
针对一个文件,能不能有一个信息,记录这个文件每次变化的信息
例如
版本一:创建文件xxx 三天前
版本二:修改了第xx行 两天前
版本三:修改错别字xxx 两天前
版本四:领导说要改xxx 一天前
版本五:最终版 三小时前
并且,它不应该只有记录的功能,而是能够记录每次提交,此时的文件与之前文件的差异,将这些差异存储起来
这样就能做到,回退到任意一个提交节点
这个时候,git闪亮登场
git下载
这个安装大家应该都没问题
windows环境
点击download,然后傻瓜式安装
然后在命令行里面输入git要能正常有反应,没有的哈就加下环境变量
linux环境
直接yum安装即可
yum install -y git
设置用户信息
git config --global user.name "用户名"
git config --global user.email "邮箱名"
查看用户信息
git config --global user.name
git config --global user.email
git创世纪
我们的这些痛点,之前的人也同样遇到过
于是Torvalds,就是那个发明linux的老哥,因为不满那个时代的版本控制工具,例如CVS,SYN,所以就自己花了10天发明了git,一个月之内,linux的源码就由git来管理了
那么有了git,我们的操作会是怎么样的呢
git init // 初始化一个本地仓库
git add . // 将目录下的所有文件提交到暂存区
git commit -m 提交信息 // 提交到git本地仓库
git log // 打印提交信息
git reset --hard xxx // 快速回到其他提交节点
看到这里,很多小伙伴会在想,暂存区是干嘛的,为什么要暂存区呢
暂存区作用
- 分离当前工作区和版本库
- 分布提交,commit只会提交暂存区中的内容到版本库
- 避免意外提交