zoukankan      html  css  js  c++  java
  • git(一)

    一.邮件的格式

    抄送:需要知道这件事的人

    内容:

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

    二.openpyxl

    注:其他同类型工具:xlrdxlwt

    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')

     

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

    三.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,做版本控制

    在项目文件的该位置,鼠标右击选择‘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

     

  • 相关阅读:
    八皇后问题--------------------递归回溯
    排序算法06------------------------插入排序
    无重复字符最长子串----------------滑动窗口法
    排序算法05------------------------堆排序(图解)
    排序算法04------------------------归并排序
    图形学基础(一)光栅图形学_下:剪裁
    计网Top-Down 抄书笔记(二)——应用层
    图形学基础(二)图形变换_下:3D 平行投影
    图形学基础(二)图形变换_上:2D 基本变换/复合变换
    图形学基础(一)光栅图形学_上:画直线/圆、区域填充
  • 原文地址:https://www.cnblogs.com/shanghongyun/p/10476275.html
Copyright © 2011-2022 走看看