git(一)

一.邮件的格式

抄送:须要知道这件事的人html

内容:git

你们好:
我是xxx,附件内容是个人简历,请查收,有问题能够随时联系我
susun|开发工程师
电话:1231xxxxx31
地址:xxxxxx
联系电话(公司):010-654654XXX

二.openpyxl

注:其余同类型工具:xlrd\xlwtweb

1.写操做

注:执行脚本时,要关闭工做表,不然会报错缓存

from openpyxl import Workbook
wb=Workbook()


#添加工做表
方式一
wb1=wb.create_sheet('index') #index表明工做表的名称,工做表默认在最后
方式二
wb1=wb.create_sheet('index',0) #根据索引的位置添加工做表


#添加数据
方式一:用单元格的索引来加
wb1['D3']='单元格'
方式二:根据单元格的位置来添加
wb.cell(row=3,column=5,value=)


#求和计算
wb1['A1']=4
wb1['A2']=3
wb1['A3']='=sum(A1:A2)'


#添加行
l=['姓名',‘性别’,‘年龄’,‘住址’,‘电话’]
wb1.append(l)


#添加到指定行(多加几个空行)
wb1.append(list())
l=['姓名',‘性别’,‘年龄’,‘住址’,‘电话’]
wb1.append(l)


wb.save('shy.xlsx') #表格的名称

 

2.读操做

from openpyxl import load_workbook
wb=load_workbook('try1.xlsx',dataonly=true,readonly) #要读取的表格的名称
print(wb.sheetnames) #查看有几个工做表
wb1=wb['index1']#读其中的一个工做表
wb1.title='user' #更改 工做表名称


#读取单元格的值
方式一:经过索引
print(wb1['A2']) #A2单元格
print(wb1['A2'].value)#A2单元格的值
方式二:经过位置
print(wb1.cell(row=2,column=2)#单元格
print(wb1.cell(row=2,column=2).value)#单元格的值

     
#求最大行,列
print(wb1.max_row)
print(wb1.max_column)


#求每一行的值
print(wb1.rows)#获得生成器
#求每一列的值
print(wb1.columns)#获得生成器
     

#获取表中的每个
for i in wb1.rows:
   for j in i:
       print(j.value)
     
     
#对于经过函数计算获得的单元格 #手动保存后再读
print(wb1['A3'].value)#前面还要加data_only=True


wb.save('aaa.xlsx')

 

字体的调整(居中,对齐方式,行高,单元格合并)bash

三.GIT(版本控制的工具)

1.git工做区

工做区:当前工做的地方(红色)
缓存区:add以后存到的地方就叫缓存区(绿色)
版本库:commit以后存到的地方就叫版本库

2.git命令

git init ##初始化
git status #查看状态
git add 文件 #添加到缓存区
git add . #将当前目录下的全部文件添加到缓存区
git commit -m '描述信息' #提交到版本库
git log #查看提交记录 当前位置往前的提交记录
git reflog #查看全部的提交记录
git head HEAD #从缓存区把文件拉取到工做区
git reset --hard 回滚值 #回滚到某一个版本,能够写长的值,也能够写短的值(md5值)
git diff #对比的是工做区跟缓存区之间的区别
git diff --cached #对比缓存区跟版本库之间的差异
git log -p #用来显示每次提交内容的差别
git log -p -2 #用来显示最后两次提交内容的差别
git log --pretty=online #
git checkout -- filename #取消修改的内容(慎用)

git stash #将当前开发的内容打包放到某个地方
git stash pop #恢复当前的工做目录
git stash list #查看stash列表
git stash drop 值 #删除stash
git stash apply #恢复当前工做目录,不删除stash

git branch name #新建分支
git branch #查看分支
git branch -d name #删除分支
git checkout name #切换到某个分支
git checkout -b name #建立分支并切换分支  
git merge name #所在的分支与name分支合并

3.应用案例(购物网站实例)

首次上线代码
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<h1>欢迎来到买买官方网站</h1>
<h3>鞋包</h3>
<h3>裙子</h3>
<h3>首饰</h3>
<h3>美妆</h3>
</body>
</html>

此时就须要用到了git,作版本控制app

在项目文件的该位置,鼠标右击选择‘git bash here’,函数

 

git init #初始化,建立一块空间
git status #查看当前状态

git add . #将当前目录下的全部文件添加到缓存区
git status

git commit -m '1.0版本的代码'

git config --global user.email "xxxxx163.com" 
git config --global user.name "shy" #根据提示添加邮箱和用户
git commit -m '1.0版本的代码' #从新提交到版本库
git log #查看提交记录 当前位置往前的提交记录

 

须要在完整的项目中去掉某一部分

此时收到有关部门的指令,须要下架'首饰'部分,此时删除项目中的‘首饰’部分工具

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<h1>欢迎来到买买官方网站</h1>
<h3>鞋包</h3>
<h3>裙子</h3>
<h3>美妆</h3>
</body>
</html>
git status #查看状态(检查到更改了web中的templates中的index.html)

git add . #将有所更改的文件添加到缓存区
git commit -m '下线首饰部份内容' #提交到版本库
git log #查看提交记录(显示一共作了两次更新)

 

回滚到某一版本(长的MD5值)

有关部门核实以后,发现没有违规商品测试

git reset --hard ac29c1e15a41dfae80347220cc11adc8de45cabf #回滚到1.0版本

此时的index文件回到了1.0版本,首饰部分回来了字体

 

回滚到某一版本(短的MD5值)

此时另外一个有关部门以为’首饰‘部分的商品不合格,须要将项目回滚到首饰下线的版本

git reflog #查看全部的提交记录(git log只能查询当前位置往前的提交记录)

 git reset 17ea0be #回滚到首饰下线的版本

 

回到缓存区的状态

此时项目又开发了新的功能’生活用品‘

git add . #添加到了缓存区,可是此人忘了提交到版本库

将生活用品项目改为了’生活‘

此时想回到生活用品的状态

git status #当前状态

git checkout --  web/templates/index.html #回到刚刚缓存区生活用品的状态()

 

对比的是工做区跟缓存区之间的区别(对比缓存区跟版本库之间的差异)

将生活用品区域改为专门是女士的生活用品

查看改了哪些东西

git diff web/templates/index.html #对比的是工做区跟缓存区之间的区别

git diff --cache web/templates/index.html #对比缓存区跟版本库之间的差异

 

在保留现有开发内容的基础上,回滚到某一版本

儿童专区的内容开发了1/2

此时有关部门要求美妆专区下线

git stash #将代码回滚到儿童专区开发前(同时把开发了1/2的儿童专区存起来)

修改文件

git add .
git commit -m '美妆下线'
git stash pop #把开发了1/2的儿童专区找回来

 

产生冲突的状况

在下线'美妆'的过程当中,可能会与儿童专区的开发修改同一行代码

解决方式1

母婴专区的内容开发了1/2,此时有关部门要求裙子专区下线

git stash #将代码回滚到母婴专区开发前(同时把开发了1/2的儿童专区存起来)

修改文件(修改的过程当中动了这行代码)

git add .
git commit -m '裙子下线'
git stash pop #把开发了1/2的母婴专区找回来

结果:此时须要手动处理冲突结果

 

解决方式2(分支法):
git branch #查看分支

git branch dev #新建分支
git checkout dev #切换到dev分支
git branch #查看分支

注:一般master分支是线上环境,dev分支是开发环境

守望先锋部分开发完毕

git add .
git commit -m '守望先锋上线'
git check -b bug #建立分支并切换分支  

此时有关部分要求下线儿童专区

修改代码

git add .
git commit -m '下线儿童专区'
git checkout master #切换到master
git merge bug #合并master与bug,此时的master也下线了儿童专区

 

注:如何作版本管理(协同开发)

有一个master分支,用于存放生产环境的代码,还有一个dev分支,在dev分支上作开发,会临时建立bug分支,用于修改线上的bug,开发完成测试没有问题后,合并到master分支上,而后再去作代码的上线

 

git log --pretty=format 经常使用的选项 列出了经常使用的格式占位符写法及其表明的意义。

选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 做者(author)的名字
%ae 做者的电子邮件地址
%ad 做者修订日期(能够用 --date= 选项定制格式)
%ar 做者修订日期,按多久之前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久之前的方式显示
%s 提交说明
使用方式:git log --pretty=format:%"H,%an"

git log 的经常使用选项

选项 说明
-p 按补丁格式显示每一个更新之间的差别。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非全部的 40 个字符。
--relative-date 使用较短的相对时间显示(好比,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其余格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。

限制 git log 输出的选项 中列出了经常使用的选项

选项 说明
-(n) 仅显示最近的 n 条提交
--since, --after 仅显示指定时间以后的提交。
--until, --before 仅显示指定时间以前的提交。
--author 仅显示指定做者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep 仅显示含指定关键字的提交
-S 仅显示添加或移除了某个关键字的提交

参考博客:https://blog.51cto.com/wangfeng7399/2352524

相关文章
相关标签/搜索