前戏
什么是版本库呢?版本库又叫仓库,英文名repository,你可以理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录,我建的叫git_demo
生成版本库
进入到git_demo目录里面
git init
初始化(git init)让git帮助我们管理当前文件夹
# $ git init Initialized empty Git repository in E:/git_test1/git_demo/.git/
Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
git status
git status 检测当前目录下文件的状态
我们在里面创建两个文件api_locust.py和manage.py,里面随便写点内容,执行git status命令
可以看到我们新建的两个文件名是红色的
红色代表新增的文件或者修改了之前的文件
绿色代表git已经管理起来了
git add
上面我们的文件还没有被git管理起来,可以使用git add 进行管理
# git add manage.py
这样只是把manage一个文件管理起来了,可以使用git status查看
如果要将当前目录下所有的文件都管理起来,使用.(点)
# git add .
打开manage.py文件,随便修改一下,在来查看一下状态
# $ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: manage.py Untracked files: (use "git add <file>..." to include in what will be committed) api_locust.py no changes added to commit (use "git add" and/or "git commit -a")
git告诉了我们有一个文件被修改了,一个文件没有提交
git commit
用命令git commit告诉Git,把文件提交到仓库
git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
# $ git commit -m 'v1' [master (root-commit) 0940348] v1 1 file changed, 15 insertions(+) create mode 100644 manage.py
git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的manage.py文件);15 insertions:插入了15行内容(manage.py有15行内容)。
git log
git log查看版本记录
# $ git log commit 09403486af1fd13ca9f844326e1bd7c187611be8 (HEAD -> master) Author: zouzou <zouzou@qq.com> Date: Mon Oct 14 21:55:46 2019 +0800 v1
commit后面一大串的内容就是我们的版本号,下面是作者和日期,vl是我们commit时添加的描述。
过滤作者和日志:
git log --pretty=oneline
#$ git log --pretty=oneline 7eb789f8b7002c432c958c281c838b3076a779a1 (HEAD -> master) v2版本 09403486af1fd13ca9f844326e1bd7c187611be8 v1
总结
初始化一个Git仓库,使用git init命令。
查看状态,使用git status命令
添加文件到Git仓库,分两步:
- 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
- 使用命令git commit -m <message>,完成