一、Linux
1 Linux目录
/:根目录
/bin:可执行二进制文件
/etc:系统配置文件
/home:用户家目录
/home/Python:当前用户所在目录
~:当前用户主目录化简写法
/root:系统管理员目录
/opt:额外安装的软件所存放的目录
2 Linux命令
命令 功能 cd 目录 切换 cd ~ 或 cd 切换到主目录 cd … 上一级 cd . 当前 cd - 上一次目录
linux: python@ubuntu:/opt$
python:用户名
ubuntu:主机名
/opt:路径
$:用户类型 $ 普通 # 超级
命令 功能 touch 文件路径+文件名 创建文件 mkdir 目录名 创建目录 mkdir -p 级联创建目录 rm 文件名 删除指定文件 rm -i 交互式(有提示) rm -r 可删除非空目录 rm -f 强制删除,忽略不存在文件 rm -d 删除空目录 rmdir 空目录名 删除空目录
命令 功能 cp 源文件 目标路径/目标文件名 拷贝 cp -r 源目录 目标目录 拷贝目录 cp -i 提示,是否覆盖 cp -v 显示拷贝后的路径 cp -a 保留文件原有权限 mv 源文件 目标路径/目标文件名 移动 mv 源目录 目标目录 移动目录 mv 源文件名 目标文件名 重命名 mv -i 提示,是否覆盖 mv -v 显示移动后的路径
命令 功能 ls 查看目录内容 ls -l 列表方式显示 ls -h 显示单位大小 ls -a 显示隐藏
命令 功能 cat 查看文件 more 查看文件(分屏):回车翻行、空格翻页、q退出
命令 功能 ln -s 源文件路径(绝对路径) 链接文件 软连接(快捷方式) ln 源文件 硬链接文件 硬链接
命令 功能 grep [选项] “要查找的内容” 查找的文件 文本搜索 grep -i 忽略大小写 grep -n 显示行号 grep -v 取反
命令 功能 find 查找的目录 -name 要查找的文件 按文件名查找 find * 0个或多个任意字符 find ? 1个任意字符 find -size 按文件大小查找 find -perm 按访问文件的权限查找
命令 功能 tar -c 创建打包文件 tar -v 显示打包过程中详细信息 tar -f 指定文件名,必须放到所有选项后面 tar -z 压缩或解压 .gz 格式 tar -j 压缩或解压 .bz2 格式 tar -x 解压缩 tar -C 解压缩到指定目录 zip 压缩包名 要压缩的文件 .zip压缩 unzip 压缩包名 -d 要解压到的目录 .zip解压
命令 功能 chmod [角色] 操作符 [权限] 修改权限 角色 u g o a user group other all 操作符 + - = 增加 撤销 设置 权限 r w x - 可读 可写 可执行 无权 chmod 数字法 r=4 w=2 x=1 -=0
vim 命令模式 移动光标
删除
撤销
末行模式
w 保存 q 退出 wq 保存且退出 x 保存且退出 q! 不保存退出 set number/nonumber 显示行号/不显示 数字 定位到某行 命令终端查看进程
命令 功能 ps -aux | grep “xxx” 查看正在运行的进程 kill 进程id 杀死指定的进程
命令 功能 sudo -s 切换到root用户 sudo 命令 管理员权限执行命令
命令 功能 sudo user add -m -g 用户名 创建用户 -m 创建用户的主目录 -g 指定用户所属用户组,不指定创建一个同名用户组 su 用户名 切换用户 sudo userdel -r 用户名 删除用户 -r 删除用户的家目录
命令 功能 sudo groupadd 用户名组 sudo ueradd -m -g 用户名组 用户名 添加用户并指定组 sudo groupdel 用户组名 删除组
3 远程登录
ssh 服务端安装
sudo apt-get install openssh-server
测试运行
ps -aux | grep "ssh"
启动服务
sudo service ssh star
停止服务
sudo service ssh stop
4 软件安装与卸载
命令 功能 sudo dpkg -i xxx.deb 离线安装 -l 查看当前系统已安装的程序 sudo dpkg -r 包名 卸载包 sudo apt-get install 包名 在线安装 sudo apt-get remove 包名 卸载 sudo apt-get update 更新源
二、多任务编程
1 并发与并行
2 多进程
import multiprocessing
p = multiprocessing. Process( 参数)
"""
参数内容:
group:指定进程组,一般不设置
target:目标,指向
name:指定进程名字,一般不设置
args:以元组方式给target指定的任务传参
kwarges:字典方式
"""
p. 方法( )
"""
方法内容:
start():启动进程
join():等待进程执行完毕,再执行后续代码
terminate():终止进程
"""
import os
os. getpid( )
os. getppid( )
注意点:进程之间不共享全局变量 设置守护进程:daenon=True 进程间的调度顺序是无序的
3 多线程
import threading
t = threading. Thread( 参数)
"""
参数内容:
group:指定进程组,一般不设置
target:目标,指向
name:指定进程名字,一般不设置
args:以元组方式给target指定的任务传参
kwarges:字典方式
"""
t. 方法( )
"""
常用方法:
start():启动线程
join():等待线程执行完毕,再执行后续代码
"""
import threading
import time
class MethodThread ( threading. Thread) :
def __init__ ( self, a) :
super ( ) . __init__( )
self. a = a
def run ( self) :
print ( "当前线程名称%s" % self. name)
print ( self. a)
for i in range ( 5 ) :
time. sleep( 1 )
print ( "method 执行中..." , i)
if __name__ == '__main__' :
st = MethodThread( 1 )
st. start( )
注意点
无序 等子线程结束,主线程才结束 共享全局变量 共享全局变量出现的问题:资源竞争导致数据不正确 互斥锁
import threading
g_nums = 0
mutex_lock = threading. Lock( )
def task1 ( loop) :
global g_nums
for i in range ( loop) :
mutex_lock. acquire( )
g_nums += 1
mutex_lock. release( )
def task2 ( loop) :
global g_nums
for i in range ( loop) :
mutex_lock. acquire( )
g_nums += 1
mutex_lock. release( )
if __name__ == '__main__' :
t1 = threading. Thread( target= task1, args= ( 1000000 , ) )
t2 = threading. Thread( target= task2, args= ( 1000000 , ) )
t1. start( )
t2. start( )
t1. join( )
t2. join( )
print ( g_nums)
三、HTML
1 标签
标签 功能 <h1-h6>
标题 <p>
段落 <div>
分区 <span>
范围标签(不太懂 ) <br>
换行 <hr>
分割线 <img>
图片 src=路径 alt=替换文本 title=提示文本 <a>
超链接 href=路径/网址 target=指定什么窗口显示 _self
_blank
<ul>
无序列表 <li>
:某一项 <ol>
有序列表 同上 <table>
表格 <tr>
一行 <td>
一个单元格 <th>
表头,比td粗点
2 表单 form
一般用在提交用户输入的数据到web服务端,比如用户注册, 用户登录, 搜索商品信息等
属性 功能 action 表单数据提交地址 method 表单提交方式,get/post等
标签 功能 label 文字标注标签 input 用户输入 textarea 多行文本 select 下拉列表 option标签定义内容
属性 功能 text 单行文本 password 密码输入框 radio 单选框 checkbox 复选框 file 选择上传文件的输入框 submit 提交按钮 reset 重置按钮 button 普通按钮
属性 功能 placeholder 设置提示信息 checked 在单选或复选中设置默认选项 selected 在select下拉列表的option中设置默认选项 name 设置表单元素的名称,是提交数据时的参数名 value 设置表单元素的值,提交数据时所对应的值
3 css
< head>
< link rel = " stylesheet" href = " mystyle.css" type = " text/css" >
< style>
h1 {
}
</ style>
</ head>
< body>
< div style =" 各种属性 " >
</ div>
</ body>
< style>
div {
background : green;
}
</ style>
< style>
.blue { color : blue}
.big { font-size : 20px}
.box { width : 100px; height : 100px; background : gold}
</ style>
< style>
#aa {
color : green;
}
</ style>
< style>
#aa,span,.title {
color : green;
}
</ style>
< style>
.con p {
color : red;
}
</ style>
< style>
a:link {
color : red;
}
a:visited {
color : green;
}
a:hover {
color : blue;
}
a:active {
color : pink;
}
</ style>
属性 功能 width 宽 height 高 background 背景 border 边框 solid 颜色 padding 内边距 magin 外边距
属性 功能 color 颜色 font-size 字号 font-family 字体 font-weight 是否加粗 bold|normal text-decoration 文字修饰线 italic|normal text-align 水平对齐方式 underline|line-through|none text-indent 首行缩进 em是一个字的大小
4 js
< head>
< script>
alert ( "hello" )
</ script>
< script src = " my.js" >
</ script>
< div onclick = " alert(' 行内式' )" >
</ div>
</ head>
< script>
window. onload = function ( ) {
}
</ script>
数据类型
数字(number) 字符串(string) 布尔(boolean) 未定义(undefinded) 对象(object) 空类(null) 条件判断 算术运算符
+ - * / % ++ --
运算符 描述 例子(y=5) 结果 / 除 x=y/2 x=2.5 % 求余数 x=y%2 x=1 ++ 自增1 x++ ,好比 x+=1 – 自减1 x-- ,好比x-=1
比较运算符
== ,===,!=,>,<,>=,<=
提示: ==
比较的是值, 而===
值和类型都比较
运算符 描述 例子(x=5) == 等于 x==8 为 false === 全等(值和类型) x=5 为 true;x =“5” 为 false != 不等于 x!=8 为 true
逻辑运算符(关系运算符)
&& ,|| , !
运算符 描述 例子(x=6 ,y=3) && and与 (x < 10 && y > 1) 为 true || or或 (x5 || y 5) 为 false ! not非 !(x==y) 为 true
if条件判断
语法1:
if(条件) {
条件成立执行的命令
}
语法2:
if( 条件) {
}
else{
}
语法3:
if(条件){
}
else if (条件){
} …
else{
}
数组 数组定义
常用方法
方式 功能 array.length 取数组长度 arrqy[index] 使用下标 push() 从尾部添加数据 pop() 从尾部删除数据 splice() 在数组指定位置添加或删除数据 参数:start:必须 num:可选,删除数组元素的个数 elementN:可选,在start下标位置要插入的新元素
循环
while(条件){语句} for(初始值;条件;增量){语句} 字符串拼接与转换
方式 功能 + 拼接 parselnt(string) 转整数 parseFloat(string) 转浮点
先要查找元素
var oBtn = document.getElementById(“id值”)
调用方式:
oBtn.方式
方式 功能 onclick 单击事件 onmouseover 鼠标滑过事件 onmouseout 鼠标离开事件 function() 匿名函数
方式 功能 setTimeout(参数) 单次定时器 参数:timerHandler:要处理的任务 timeout:延迟时间,毫秒单位 atguments:向任务函数传递参数 clearTimeout(timeoutld) 清除单次定时器 setInterval(参数) 多次定时器 参数同单次 clearInterval(timeoutld) 清除多次定时器
5 jq
<script scr="jquery-1.12.4.min.js"></script>
& ( function ) ( ) {
var $div = $ ( "#id" )
}
方法 功能 html() 不写参数表示取值,写参数表示修改内容 append() 追加内容 css() 访问或修改css属性 prop() 访问或修改html属性 val() 访问或修改value属性
代码 功能 $li
标签选择器 $(".box")
类选择器 $("#li_")
id选择器 $("#li_,p")
组选择器 $(".box p")
层级选择器 $("li[id=li_]"
属性选择器 $("div").has("p")
选择器过滤,指定标签 $("li").eq(1)
选择器过滤,指定索引
代码 功能 prev() 上面同级元素 preAll() 上面同级所有元素 next() 下面同级元素 nextAll() 下面同级所有元素 parent() 父级元素 children() 子元素 siblings() 其他同级元素 find() 同级同类元素
代码 功能 click() 鼠标单击 blur() 元素失去焦点 focus() 元素获得焦点 mouseover() 鼠标进入 mouseout() 鼠标离开 ready()DOM(document object model) 加载完成
防止冒泡:return false
代理:deldegate(参数)
childSelector:子元素的选择器 eventType:事件类型 function:当事件触发执行的函数
6 ajax
参数 功能 url 请求地址 type 请求方式,默认GET,常用的还有POST dataType 设置返回数据格式,常用json data 设置发送给服务器的数据,没有则不设置 succes 设置请求成功后回调函数 error 设置请求失败后回调函数 async 设置是否异步,默认true
四、socket
1 方法
方法 功能 socket(参数) 创建套接字对象 参数:AddressFamily:地址族,一般用AF_INET(ipv4) Type:套接字类型 connect((host,port)) 建立连接 send(data) 发送数据,二进制 recv(buffersize) 接收数据,参数为每次接收数据的长度 listen(backlog) 开启监听,参数表示最大等待建立连接的个数 accept() 表示等待接收客户端的连接请求
2 请求行
request_line = recv_data. split( "\r\n" ) [ 0 ]
request_path = request_line. split( " " ) [ 1 ]
3 响应报文
"""
常用状态码:
200 OK
3xx 表示重定向
404 NOT FOUND 客户端请求错误
5xx 表示服务器内部错误
"""
response_line = "HTTP/1.1 状态码\r\n"
"""
响应头常用参数:
Content-Type:text\html;charset=UTF-8
"""
response_headers = "key:value\r\n"
response_space = '\r\n'
response_body = html文件
五、mysql
1 安装及配置
sudo apt-get install mysql
sudo apt-get install mysql-client
启动:sudo service mysql start
停止:sudo service mysql stop
重启:sudo service mysql restart
查看状态:sudo service mysql status
配置文件:
路径:/etc/mysql/mysql.conf.d/mysqld.cnf
port:端口号,默认3306
bind-address:ip,默认127.0.0.1
datadir:数据库保存路径,默认/var/lib/mysql
log_error:错误日志,默认/var/log/mysql/error.log
2 登录登出
登录:
mysql -uroot -p
登出:
exit/quit/ctrl + d
3 库操作
命令 功能 show databases; 查看所有数据库 create database 库名 charset=utf8; 创建数据库 use 库名; 使用数据库 select database(); 查看当前数据库 show create database 库名; 查看创建数据库sql语句 drop database 库名; 删除数据库
4 表结构操作
命令 功能 show tables; 查看当前数据库所有表 create table 表名(参数); 创建表 desc 库名; 查看表的字段信息 show create table students; 查看创建表的语句 alter table 表名 add 列名 类型; alter table 表名 modify l列名 参数’; 修改表,不重命名 alter table 表名 change 原名 新名 参数’; 修改表,重命名 alter table 表名 drop 列名; 删除字段 drop table 表名; 删除表
参数 功能 int unsigned 无符号整形 tinyint -128~123的整型 decimal 浮点数 varchar 字符串 auto_increment 自动增长跟主键在一起 not null 不能为空 primary key 主键 default 默认值 unique 不能重复
5 表内容操作
命令 功能 insert into 表名(字段1,字段2) values(值1,值2),(值1,值2) 增加内容,可用0 null default update 表名 set 列1=值1,列2=值2…where 条件 修改内容 select 列 from 表名 查询 select 列 from 表名 order by 列名 asc(desc) 按某列排序 select 列 from 表名 limit a,b 分页查询 select count(*) from 表名 总数 select max(列名) from 表名 最大值 select min(列名) from 表名 最小值 select sum(列名) from 表名 列求和 select avg(列名) from 表名 列求平均(不包含null) select round(数据,位数) from 表名 保留小数位 select sum(列名)/count(*) 列求平均(所有) select 列 from 表名 group by 列名 分组查询 select group_concat(列1) from 表名 group by 列2 查询同列2中的列1 select 列 form 表名 group by 列名 having 限制条件 条件分组查询 select 列 from 表名 group by 列名 with rollup 汇总 select 列 form 表名 inner join 表名 on 条件 内连接查询 delete from 表名 where 条件 物理删除 alter table 表名 add 字段 类型 default 默认值 逻辑删除 alter table 从表 add foreign key (外键字段)references 主表(主键字段) 添加外键约束 alter table 表名 drop foreign key 外键名 删除外键约束 as 起别名 distinct 去重
6 运算符
命令 功能 < 小于 > 大于 >= <= 大于等于 小于等于 != <> 不等于 and 与 between…and… 之间 or 或 not 不在 like 模糊 in(a,b) a-b之间 is null 是空值 is not null 不是空值
7 pymysql
pymysql.connect(参数)
参数 功能 host ip地址 port 端口号 database 数据库名 user 用户名 password 密码 charset 通讯编码方式
cursor = conn.cursor()
sql = sql语句
count = cursor.execute(sql)
cursor.fetchall()
sql = “sql语句%s”
cursor.excute(sql,[参数])
begin;
内容
commit;/rollback;
8 索引
命令 功能 show index from 表名 alter table 表名 add index 索引名 (列名) 创建索引 alter table 表名 drop index 索引名 删除索引 alter table 表情 add index 索引名(列名1,列名2) 创建联合索引
六、装饰器
def decorator ( name) :
def _decorator ( func) :
def wrapper ( * args, ** kwargs) :
return func( * args, ** kwargs)
return wrapper
return _decorator
七、 longging
1 日志等级
默认是WARNING等级
等级 说明 DEBUG 程序调试bug时使用 INFO 程序正常运行时使用 WARNING 程序未按预期运行时使用 ERROR 程序出错误时使用 CRITICAL 特别严重错误
2 设置
logging. basicConfig(
level= 日志等级,
format = 输出格式,
filenmae= 文件名,
filemode= 模式,
)
logging. debug( "调试" )
logging. info( "信息" )
logging. warning( "警告" )
logging. error( "错误" )
logging. critical( "严重错误" )
输出格式 功能 %(levelname)s 打印日志级别名称 %(filename)s 打印当前执行程序名 %(lineno)d 打印日志当前行号 %(asctime)s 打印日志的时间 %(messsage)s 打印日志信息
八、property
@property
def age ( self) :
return self. __age
@age. setter
def age ( self, num) :
if 条件:
self. __age = num
九、上下文管理
class Myclass ( object ) :
def __enter__ ( self) :
"""
代码
"""
return "as后面的对象"
def __exit__ ( self, * args) :
"""
代码
"""
return True
十、生成器
list1 = ( i for i in range ( 10 ) )
print ( next ( list1) )
def fn ( num) :
a = 0
while a < num:
yield a
a += 1
fn1 = fn( 3 )
十一、正则表达式
1 调用方式
re. match( 正则, 数据) . group( )
2 匹配单个字符
语法 功能 .
除\n以为的任意字符 []
集合内任意一个字符 例:[abc] [-]
范围 例:[a-z] [^]
取反 例:[^a-z]
\d
数字 \D
非数字 \s
空白字符,包括换行 \S
非空白字符 \w
ASCII下不匹配中文,utf8下匹配除了特殊字符 \W
与上相反
3 匹配多个字符
语法 功能 {m}
m次 {n,m}
至少n次 至多m次 {n,}
至少n次 +
至少1次 *
至少0次 ?
0或1次
4 匹配位置
5 分组
re. match( "(组1,组2,组3)" ) . group( 编号)
有名分组: ( ?P< 分组名> 正则)
获取分组结果: . group( 分组编号) 等价 . group( 分组名)
分组引用字符串: ( ?P= 分组名字)
十二、redis
1 安装
下载:
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
解压:
tar -vxzf redis-4.0.9.tar.gz
移动:
sudo mv ./redis-4.0.9 /usr/local/redis/
cd:
cd /usr/local/redis/
编译:
sudo make
测试( 线上完成,可以不做) :
sudo make test
安装:
sudo make install
sudo apt-get install redis-server
2 配置
sudo vi /etc/redis/redis.conf
核心配置:
bind ip
port 6379
daemonize yes
dbfilename dump.rdb
dir /var/lib/redis
logfile "/var/log/redis/redis-server.log"
database 16
slaveof
3 服务端命令
命令 功能 ps aux | grep redis 查看redis进程 ps ef | grep redis 查看redis进程 sudo kill -2 pid 杀死进程 sudo redis-server 路径/redis.conf 启动指定redis配置文件 /etc/init.d/redis-server stop(start、restart) 服务停止,启动,重启
4 客户端命令
命令 功能 redis-cli 连接 redis-cli -p 端口号 选择端口连接 select 数字 选择数据库
5 操作string
命令 功能 set key value 设置键值 setex key seconds value 设置键值以及过期时间 mset key1 value1 key2 value2 设置多个键值 append key value 追加值 get key 获取值 mget key1 key2 获取多个值
6 键命令
支持正则
命令 功能 keys 正则 查找键 exists key 判断键是否存在 0 1 type key 查看对应的value类型 del key1 key2 删除键 expire key seconds 设置过期时间 ttl key 查看有效时间
7 操作hash
命令 功能 hset key field value 设置单个属性 hmset key field1 value1 field2 value2 设置多个属性 hkeys key 获取所有的属性 hget key field 获取一个属性的值 hmget key field1 field2 获取多个属性的值 hvals key 获取所有的属性
8 操作list
命令 功能 lpush key value1 value2 左侧插入数据 rpush key value1 value2 右侧插入数据 insert key before或after 现有元素 新元素 指定元素前或后插入 lrange key start stop 返回列表指定范围元素 lset key index value 设置指定索引位置的元素值 lrem key count value 删除指定元素,count>0从头往尾删除,count<0从尾往头删除,count=0删除所有
9 操作set
命令 功能 sadd key member1 member2 添加元素 smembers key 返回所有的元素 srem key value 删除指定元素
10 操作zset
命令 功能 zadd key score1 member1 score2 member2 添加元素 zrange key start stop 范围内获取元素 zrangebyscore key min max score范围内获取元素 zscore key member 返回元素的score值 zrem key member1 member2 删除指定元素 zremrangebyscore key min max 删除权重指定范围的元素
11 主从和集群
复制:
sudo cp /etc/redis/redis.conf /etc/redis/slave.conf
修改:
sudo vim /etc/redis/slave.conf
内容:
bind 127.0.0.1
slaveof 127.0.0.1 6379
port 6378
启动从redis:
sudo redis-server /etc/redis/slave.conf
查看主从关系:
redis-cli info Replication
redis-cli -p 6378 info Replication
注:一下操作前先准备好6个端口并且运行成功
复制:
sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/
安装ruby:
sudo apt-get install ruby
创建集群:
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
如果报错:
gem source -l
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
sudo gem install redis
连接集群:
redis-cli -h ip地址 -c( 表示连接的是集群, cluster) -p 端口号
port 7003
bind 172.16.179.131
daemonize yes
pidfile 7003.pid
cluster-enabled yes
cluster-config-file 7003_node.conf
cluster-node-timeout 15000
appendonly yes
12 python操作redis
sudo pip3 install redis
sudo pip3 install redis-py-cluster== 1.3.6
from redis import StrictRedis
redis_cli = StrictRedis(
host= "localhost" ,
port= 6379 ,
db= 0
)
result = redis_cli. set ( "name" , "itheima" )
from rediscluster import StrictRedisCluster
startup_nodes = [
{ 'host' : '127.0.0.1' , 'port' : '7000' } ,
{ 'host' : '127.0.0.1' , 'port' : '7001' } ,
{ 'host' : '127.0.0.1' , 'port' : '7002' } ,
{ 'host' : '127.0.0.1' , 'port' : '7003' } ,
{ 'host' : '127.0.0.1' , 'port' : '7004' } ,
{ 'host' : '127.0.0.1' , 'port' : '7005' }
]
cli= StrictRedisCluster( startup_nodes= startup_nodes, decode_responses= True )
result= cli. set ( 'name' , 'itheima' )
name = cli. get( 'name' )
十三、Git
1 单人操作
命令 功能 git init 创建本地仓库 git config user.name(email) 配置个人信息 vim .git/config 配置信息 git status 查看工作区状态 git add 文件名 把工作区修改的部分添加到暂存区中 git add . 添加所有修改到暂存区 git commit -m “标签” 将暂存区所有修改提交到仓库区 git commit -am 把工作区的修改添加到暂存区并提交 git log 查看当前分支提交情况 git reflog 查看所有分支操作记录 git reset --hard HEAD 退回,HEAD当前最新,HEAD前一个版本,HEAD ^前两个,HEAD1前一个,HEAD 10前10个 git reset --hard 版本号(一般7位uuid码即可) 通过版本号退回 git checkout 文件名 撤销修改 git reset 文件名 撤销暂存区的修改 git diff HEAD – 文件名 对比版本库与工作区 git diff HEAD HEAD^ – 文件名 版本文件之间的对比 git rm 文件名 确定删除文件,在暂存区也删除
2 多人开发
码云: https://gitee.com/
学校的gitlab: http://git.meiduo.site/
git clone 复制的网址
命令 功能 git tag -a 标签名 -m “标签描述” 在本地打标签 git tag 查看本地标签列表 git show 标签名 查看相应标签的版本信息 git push origin 标签名 推送标签到远程仓库 git tag -d 标签名 删除本地标签 git push origin --delete tag 标签名 删除远程仓库标签
命令 功能 git branch 查看当前分支 git checkout -b 分支名 创建并切换到分支 git push -u origin 分支 设置本地分支跟踪远程指定分支,并把dev分支推送到远程仓库 git chekout 分支名 切换分支 git merge 分支名 把分支合并到当前分支
设置记住密码,默认15分钟
git config --global credential.helper cache
自己设置时间
git config credential.helper 'cache --timeout=3600'
长期存储
git config --global credential.helper store
1.创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "13423682841@example.com"
复制公钥
cat ~/.ssh/id_rsa.pub
添加至账号
克隆即可
git clone git@gitee.com:laowang099/python15_mayun.git网址