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

相關文章
相關標籤/搜索