git如何进行版本控制?
如何做版本控制呢?其实就是让git管理文件夹,比如我们有一个项目叫学生考试管理系统,首先我们创建一个文件夹student,这个文件夹当中保存所开发的所有代码
-
进入要管理的文件夹
-
初始化
git init
输入以上命令即完成了初始化,完成初始化之后就可以管理了,怎么管理呢?
- 管理
- 管理目录下的文件状态
git status
该命令是检测当前文件夹下的文件状态,检测到之后然后进行管理:
- 管理指定文件
git add "文件名"
add test文件夹后,查看状态发现test文件夹下的所有文件都成为绿色状态了,即git已经开始管理了。
或者:
git add .
git add . 是将该文件夹下面的所有没有add的文件全部add,git add之后其实就是git将这些文件管理起来了
- 生成版本
git commit -m "第一个版本"
-m选项是message的意思,也就是一些辅助信息,让开发者便于知道该部分是干嘛的。
我们修改一下这第一个版本,增加一个hello.txt文件看一下会发生什么:
可以发现状态变为红色了,所以我们需要再次add并且commit提交该版本:
查看生成的所有版本:
git log
有些小伙伴可能第一次使用git没有进行个人信息配置,使用以下命令进行用户名和邮箱的配置:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git三大区域
前面我们看到我们在创建一个新文件或者修改时查看状态会发现该文件会变为红色状态,实际上就是上图中的红色区域,而add之后的文件会变为绿色状态,也就是上图中的暂存区,commit之后的文件会位于版本库当中。
git add将发生修改的文件添加到暂存区/索引,修改的工作区内容会写入对象库的一个新的git对象中,在.git目录下会有objects目录,用来存放git对象,add后.git目录下会生成一个index,就是用来存放修改的内容的索引,git commit后的文件会位于版本库当中。
回滚
当我们提交了一个版本之后,而想回到之前的版本怎么做呢?比如领导让你开发业务的一个新功能,你开发完成后成功上线,但是领导说还是之前的好,不需要这个新功能了,此时你心里***,但是没办法谁让我们是打工人呢,只能照做,此时我们就可以用到回滚:
首先查看当前所有版本信息:
git log
commit后面的一长串数字字母就是版本号,此时再输入回滚命令:
git reset --hard "8ef0c16f65936397b2c33f566f01dc2eb76f6f29"
此时就回到第一个开发版本了,那么我们又想回滚回来怎么做呢?我们首先git log查看版本信息,看一下第二个版本的版本号:
但是发现以前的提交版本不见了,那么怎么办呢?难道git不提供这种功能吗?不是的,我们可以使用git relog查看到记录
git reflog
拿到想要回滚的版本号,然后回滚:
git reset --hard "60b9898"
命令总结:
回退:
例如版本1的文件内容为git,版本2为git world,那么–soft选项只对版本库进行回退,–mixed只对暂存区和版本库进行回退,–hard对工作区和暂存区以及版本库都进行回退
git reset HEAD
该命令是回退到当前版本,默认的选项为–mixed,git reset HEAD^是回到当前版本的上一个版本,以此类推^^是回退到上上一个版本
撤销修改的三种场景:
第一种是只修改没有add,第二种是修改了然后add了,第三种是add并且commit了。
删除文件,如何删除?
方法一:
rm filename
git add filename
git commit -m "delete filename"
方法二:
git rm filename
git commit -m "delete filename"
git rm filename是将filename从工作区以及暂存区都删除。