git 协作开发 - 短信接口 - redis 基础
早上第二个视频,有从头到尾走一遍的
两分左右有整个流程
git@gitee.com:doctor_owen/luffyapi.git
被添加到项目的开发者中
复习
"""
1、版本管理器:管理在编写代码时,各种代码版本的工具 - 一般在一个需求或是一项功能代码结束后,就称之为一个代码版本
2、svn和git比较:git服务端与客户端整合,每一个仓库都可以作为客户端也可以作为服务端(集群部署、不怕服务器宕机)、git可以多分支操作,分支管理很强大
3、git的工作流程:工作区 <=> 暂存区 <=> 版本库 <=> 远程仓库 <=> 版本库
增删改查 | git checkout .
git add . | git reset HEAD . (git reset)
git commit -m '信息' | git reset --hard 版本号 (git reflog | gitlog)
4、基础命令
git init
git status
5、remote
git remote | git remote -v
git remote add 源名 地址
git remote remove 源名
6、branch
git branch
git branch 新分支 | git checkout -b 新分支
git checkout 分支
git branch -d 分支
7、gitee远程仓库
本地仓库提交代码到本地版本库
创建远程仓库,将本地主机添加至开发者
本地仓库配置远程仓库remote源
提交代码到远程仓库
8、提前配置 - 在第一次提交版本库之前完成
本地仓库的全局或局部用户信息
本地主机要生成公钥私钥
配置仓库的过滤条件
"""
同步项目
然后 git clone git@gitee.com:doctor_owen/luffyapi.git
即可把项目同步到本地
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git config user.name "Suwanbin"
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git config user.email "1335951413@qq.com"
# 新建一个文件 test.txt
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
nothing added to commit but untracked files present (use "git add" to track)
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git add .
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git commit -m "测试保护分支"
[master a7604ea] 测试保护分支
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git remote
origin
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 279 bytes | 279.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Access denied: You do not have permission to push to the protected branch 'master' via SSH
remote: error: hook declined to update refs/heads/master
To gitee.com:doctor_owen/luffyapi.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'git@gitee.com:doctor_owen/luffyapi.git'
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (master)
$ git checkout -b dev
Switched to a new branch 'dev'
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git add .
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git commit -m "test.py 测试分支"
[dev 1aa6aa8] test.py 测试分支
1 file changed, 1 insertion(+)
create mode 100644 test.py
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git push origin dev
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 516 bytes | 516.00 KiB/s, done.
Total 5 (delta 2), reused 0 (delta 0)
remote: Powered By Gitee.com
To gitee.com:doctor_owen/luffyapi.git
* [new branch] dev -> dev
版本冲突
常规操作,先拉后提交
我有的 服务器没有,服务器有的我没有(这时我要提交)
不一致的时候,必须先 pull 后 push(在 pull 之前,要先 加到工作区 本地版本库(git add .
git commit -m "备注信息"
))
git pull
暂时还没拉下来
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git status
On branch dev
nothing to commit, working tree clean
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git reflog
1aa6aa8 (HEAD -> dev, origin/dev) HEAD@{0}: commit: test.py 测试分支
a7604ea (master) HEAD@{1}: checkout: moving from master to dev
a7604ea (master) HEAD@{2}: commit: 测试保护分支
5d2442c (origin/master, origin/HEAD) HEAD@{3}: clone: from git@gitee.com:doctor_owen/luffyapi.git
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 20 (delta 10), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
From gitee.com:doctor_owen/luffyapi
1aa6aa8..b7a5183 dev -> origin/dev
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
Updating 1aa6aa8..b7a5183
Fast-forward
luffyapi/a.py | 7 +++++++
luffyapi/bob_test.py | 3 +++
2 files changed, 10 insertions(+)
create mode 100644 luffyapi/a.py
create mode 100644 luffyapi/bob_test.py
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git reflog
b7a5183 (HEAD -> dev, origin/dev) HEAD@{0}: pull origin dev: Fast-forward
1aa6aa8 HEAD@{1}: commit: test.py 测试分支
a7604ea (master) HEAD@{2}: checkout: moving from master to dev
a7604ea (master) HEAD@{3}: commit: 测试保护分支
5d2442c (origin/master, origin/HEAD) HEAD@{4}: clone: from git@gitee.com:doctor_owen/luffyapi.git
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git add.
git: 'add.' is not a git command. See 'git --help'.
The most similar command is
add
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git add .
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git commit -m "修改test.py,加了个循环"
[dev dd5916d] 修改test.pyy,加了个循环
1 file changed, 4 insertions(+), 1 deletion(-)
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git status
On branch dev
nothing to commit, working tree clean
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
Already up to date.
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git push origin dev
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 333 bytes | 333.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered By Gitee.com
To gitee.com:doctor_owen/luffyapi.git
b7a5183..dd5916d dev -> dev
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
dd5916d..835d53e dev -> origin/dev
Updating dd5916d..835d53e
Fast-forward
test.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
Already up to date.
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git add .
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git commit -m "test: if 2"
[dev 49c342c] test: if 2
1 file changed, 1 insertion(+)
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git status
On branch dev
nothing to commit, working tree clean
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
Already up to date.
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git push origin dev
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 312 bytes | 312.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered By Gitee.com
To gitee.com:doctor_owen/luffyapi.git
835d53e..49c342c dev -> dev
# Administrator@PC-20190116XBHT MINGW64 ~/Desktop/luffyapi (dev)
$ git pull origin dev
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 19 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (19/19), done.
From gitee.com:doctor_owen/luffyapi
* branch dev -> FETCH_HEAD
49c342c..0dc7c18 dev -> origin/dev
Updating 49c342c..0dc7c18
Fast-forward
test.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
合并分支
一个项目可以设置 审核人员,普通人员
自己合并(有哪些命令再看下?)
在 dev 下执行 git merge bob
在 z 分支执行命令,合并 x 分支
git pull origin dev
、git push origin dev
下午日考:
1.git提交1.txt到暂存区
git add 1.txt
2.git完成第一次项目初始化到版本库命令
git add .
git
3.合并dev分支到master分支命令
项目开发 git操作
"""
1、开发前,拉一次远程仓库
2、工作区进行开发
3、将开发结果提交到本地版本库 - git status查看时没有待处理的事件
4、拉取远程仓库(每一次要提交远程仓库前必须先拉)
5、如果出现冲突,线下沟通(协商重新开发冲突文件),要重新走3、4步
6、没有冲突,提交到远程仓库
"""
Redis 数据库
- 为什么要用 redis 数据库,而不用常见的数据库呢?
- redis 是内存数据库,相比 mysql 等硬盘数据库效率高
- 为什么在内存中配置数据库使用,而不直接使用内存?
- redis 存储的数据是可以管理的
- memcache 也是内存数据库,且 django 默认采用的就是 memcache 数据库,为什么要使用 redis 而不使用 memcache
- redis 更强大,支持更多的数据类型
- redis 自带缓存机制,出现数据库系统崩溃,数据也是可以有找回的功能
- redis 可以主动完成数据持久化(自带数据持久化功能)
- redis 的数据过期时间机制也可以自身完成
下载安装
官网下载安装包,安装(默认安装就好了)
记得勾选添加到环境变量中
redis 数据类型
"""
支持的数据类型:String、Hash、List、Set、Sorted Set
String:存储其他类型不能存的所有数据
Hash:存储 key-value 形式数据,类似于字典
List:存储 一系列有序value 形式数据,列表(数组)
Set:存储 一系列无序value 形式数据,集合
Sorted Set:存储 有排列标号value 形式数据,排行
"""
有序集合一般用来做排行版,内存中要实时更新,查询效率要求比较高的数据(每次查询只是查前多少条就行了)
字符串还是用的最多的,因为后台的数据一般都要序列化返回给前台,只要能够序列化,就一定能变成字符串,然后可以反序列化回来
# 字符串类型最常用的操作
set key value
get key
mset key1 value1 key2 value2 ...
mget key1 key2 ...
setex key expir_time value
get key