5.创建版本库并提交文件
版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。理解了Git 文件状态与三种工作区域之后,通过一个例子来体验Git对于文件的基本操作
- 通过 git init 命令在本地文件夹下初始化一个本地仓库,执行该命令后会在你所在文件下创建一个空的仓库
- 在.git同级目录下创建一个.txt文件命名为git01.txt,我们将用这个例子来演示如何创建版本库并提交文件
通过 git status 命令查看文件的所有文件的提交状态
通过 git add+文件名 命令添加文件到暂存区
通过 git commit -m’这里填写注释’ 命令添加文件到本地版本库
通过 git log 命令显示提交的日志信息
6.时光穿梭机
企业中在多人的项目开发环境下,使用Git 版本控制工具对项目版本进行管理时,通常会对项目不同版本的文件进行查看,项目历史版本,未来版本的切换操作,对于一个项目开发人员,此时对于Git 的这些基本命令操作就成为了一项基本技能
6.1 修改文件与文件提交
修改后的git01.txt
文件修改后,再次使用git status 命令
发现git01.txt被修改过了已经
再次使用 git add ; git commit -m’第一次修改git01.txt文本’
查看操作日志
再次修改git01.txt,并提交
然后执行git diff HEAD - - git01.txt(与版本库内容比较)
可以看出:文本中第三行内容并没有提交到版本库中 原因在于修改后的git01.txt 并没有添加到暂存区,所有执行提交操作并不会发生改变
当发现操作失误将文件添加到暂存区之后可以用git reset HEAD +文件来撤销执行的操作
再次查看版本库状态 test.txt 成为未追踪文件
6.2 版本回退
当文件修改后被提交的次数很多时,对于版本库中存放的文件就会出现不同的版本,在多人开发的项目环境中,通常会对不同版本文件进行查看甚至回退的情况(比如某些游戏中所提供的状态保存功能,能够在某一时刻保存整个游戏场景状态以方便后续继续在该状态下进行游戏进行而不是从头开始),值得庆幸的是 Git 也提供了同样的功能,能够让开发者在不同版本的项目中进行切换,达到时空穿梭自如的目的!
git reset --hard HEAD^ 这个命令会回退一次操作,例如删除,修改等
HEAD^: 将指针指向上一个版本,。如果要回退两个版本则在^后面再加一个 即可 HEAD^^ 如果回退的版本过多则可用 HEAD~100 (回退100个版本)
回退操作已经完成,但此时如果想要回到未来的版本即 新的版本怎么办呢? 其实这里也比较简单,前面说到针对提交后的版本库,每个版本均会有一个唯一标识,这里找到对应版本标识即可完成回到未来版本的操作 如下
git reflog 查看记录在本地的HEAD和分支引用在过去指向的位置
6.3 文件删除
在Git中,删除文件同样是一个修改操作,即在Git世界中,Git仅仅关注文件是否被修改(文件添加,更新,删除)
文件提交到版本库之后即文件相当于被备份了一份,在本地的如果被手动删除之后恢复可用
git checkout - - 文件名来从版本库中找回,然后放在本地
如果要删除版本库中的文件可用
git rm 来进行删除操作