一步一步教你使用Git
互联网给我们带来方便的同时,也时常让我们感到困惑。随便搜搜就出一大堆结果,然而总是有大量的重复和错误。小妖发出的内容,都是自己实测过的,有问题请留言。
-
现在,你已经安装了Git,即:
-
新建一个目录 test_git,让我们开始尝试
-
初始化Git
-
现在你的代码已经在Git管理之下了,开始编辑,新建一个文件 master/1.md
-
保存后回到根目录test_git下查看一下当前Git的状态
-
这里告诉我们,多了一个文件夹,可以用 git add 命令把它加入缓存区
-
git add . 把所有修改加入缓存区,注意是“git add .”。你也可以把部分修改加入缓存区,那就用“git add filename”。这里简单说下什么是缓存区,git 下共有三个区:工作区、缓存区、库。工作区就是你编辑的环境,缓存区就是已经存起来的修改,准备提交到库了,库就是已提交的修改。下面查看下 git add 后的Git的状态,还是用 git status
-
这个告诉我们,文件已经在缓存区了,默认情况下,红色就是在工作区,绿色就是在缓存区。那我们现在还能对 master/1.md 继续修改或增删别的文件吗?可以的,我们增加一个文件 master/2.md。内容为“第二个文件,内容都无所谓啦”,并修改 master/1.md
-
然后还是 git status(这个只是为了让你得知当前Git是什么状态,并不是必须的,熟练后可以省略,当然时常查看一下状态是个好习惯)
-
我们看到,有一个缓存区的修改,有两个工作区的修改。好吧,先git add .
-
然后提交到库,这里用命令 git commit -m "本次提交的说明"
-
提交完成,再看一下当前的状态
-
这告诉我们,已经提交过,提交后并没有任何修改,工作目录是“干净”的
-
有一次,我不小心修改了一个文件,还没有提交到缓存区,我想放弃修改
-
可以看到,我们先修改了 master/1.md,想放弃它的修改,我们用了 git checkout 命令。git checkout 相当于用库里的文件覆盖了当前工作区的文件,也就是放弃了工作区的修改。放弃单文件的修改,用 “git checkout filename”,放弃所有文件区的修改,用 “git checkout .”,事实上大部分命令都支持“filename”和“.”
-
另一种场景,我不是修改了一个文件,而是在工作区新加了一个文件,怎么办?
-
可以看到,现在 master/3.md 还不在 Git 的管辖之下,不能用 git checkout 删除。
-
这里用到 git clean -df ,用来删除工作区不在 Git 管辖下下的新增文件
-
另一种场景,如果是已经提交到缓存区的文件,想放弃它的修改呢,首先把它放回工作区,再用 git checkout 命令就可以了。
-
这里用 git reset 命令将文件从缓存区放回到工作区,git reset 同样支持“git reset filename”和“git reset .”
-
有那么一次,你做了大量的修改,增删了大量文件,而且一部分已经提交到缓存区。这时产品经理突然说这个需求被砍了,全部回滚吧。你可以把
-
git reset .
-
git checkout .
-
合并成一条命令
-
git reset --hard
-
这就是放弃上一次提交后的所有修改,当然,这个不能删除新增的文件,全部回滚的话还得加一条
-
git clean -df
-
先小结一下,这次我们只介绍了单人单分支下简单的 Git 使用方法,包括三个区(工作区、缓存区、库)的概念,以及文件修改是如何在这三个区间流动的。现在 Git 只是你自己的代码版本控制工具。如果你看到了这里,那你可能也是一个 Git 新手,希望激起了你对 Git 的兴趣,以后还会接着介绍 Git 的分支和远程库,多人协作等。当然,不需要等我,这种文章网上铺天盖地,我记录下来多半是为了我的小弟,让他少走点弯路~