美文网首页
python git相关总结

python git相关总结

作者: Mikasa___ | 来源:发表于2020-05-18 11:15 被阅读0次

一、判断文件内容改变:

例子:hashlib.md5(open(name_path[m]).read().encode('utf-8')).hexdigest()

在进行md5哈希运算前,需要对数据进行编码。在不同版本的Python下结果不同:

# python2
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd).hexdigest()
print checkcode # ea25a328180680aab82b2ef8c456b4ce

# python 3先不解码,直接去编码
import hashlib
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd).hexdigest()
print(checkcode)
# 运行时报错 Traceback (most recent call last):
#  File "D:/pyProjects/gittest/scheduled_tasks/test.py", line 4, in <module>
#    checkcode = hashlib.md5(pwd).hexdigest()
# TypeError: Unicode-objects must be encoded before hashing

# python3 先解码,再编码
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd.encode("utf-8")).hexdigest()
print(checkcode) # b517e074034d1913b706829a1b9d1b67

扩展:
如果是中文字符,在Python中是以unicode存在的,在hash前要求进行编码转换,是因为同一个字符串在不同的编码体系下有不同的值,为确保不发生歧义必须要进行一次显性转换。先解码,再在进行md5哈希运算前,对数据进行编码。
hashlib.md5(data.encode("gb2312"))

二、git撤销与回滚

  1. git commit前,未添加到暂存区的撤销(没有git add)
    git checkout -- filename
    想将多个文件一次性撤销可以用
    git checkout -- .
  2. git commit前,添加到暂存区的撤销(git add 以后)
    git reset HEAD filename
    想一次性将所有暂存区文件撤销回来
    git reset HEAD
    3.git commit后
    (1)git revert commitid (撤销这一次提交操作,这次操作前后的提交记录都会保留)
    然后推送到远端更新远程仓库代码,就撤销回来了。
    注意revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果再revert后文件又还原成ab了。
    (2)想回到之前某个版本,可以用reset命令,可以回退到某次提交,那该提交之后的提交都会回滚
    git reset --hard commit_id
    --hard 强制将缓存区和工作目录都同步到你指定的提交/分支

三、Git保留本地Log文件夹,删除远端的

git rm - r --cached 要删除的文件夹名称

image.png

四、python直接使用git库

方式之一:通过git实例使用git命令

from git import Repo

repo = Repo("./")
git = repo.git
# 如使用 git fetch --all
# 如 使用 git reset --hard origin/master
print(git.fetch('--all'))
git.reset('--hard', 'origin')

五、format格式化函数:

通过 {} 和 : 来代替以前的 %

add= ['1.py', '2.py', '4.py']
then = ['3.py']
clear= {'one':'9.py','two':'8.py'}
print('{one}--{two}'.format(**clear))
print('{0[0]}--{1[0]}'.format(add,then))
# 输出9.py--8.py
# 1.py--3.py

# print('新加了%s' % add)
# print('新加了{}'.format(add))
# 位置参数,引用时第一个引用位置引用add[0]
# print('新加了{}--{}--{}'.format(*add))
#:[填充字符][对齐方式 <^>][宽度]
print('{:*>10}'.format(10))   #输出********10
print('{1:~^6}'.format(10,8))   #~~8~~~

# eval('os.system("rm ddd.py")')  #执行一个字符串表达式,并返回表达式的值
print(eval('[1,2,3]'))  #也可以还原字符串里面内容的原本类型和内容

相关文章

  • python git相关总结

    一、判断文件内容改变: 例子:hashlib.md5(open(name_path[m]).read().enco...

  • AS git相关总结

    AS中配置Git并Push到GitHub: 1.File --> Setting --> Version Cont...

  • 用Python实现遗传算法(GA)(一)

    Clinton Sheppard的Genetic Algorithms with Python一书总结的笔记git...

  • git相关命令总结

    对于开发人员来说,掌握git命令是必不可少的,现在将常用的命令做一总结。 1、最常用的4条命令 Git各种命令组合...

  • git基本命令

    git常用命令 git丢弃更改相关 git连接远程仓库相关 git切换分支相关 git stash相关 git标签相关

  • git相关教程汇总

    1. git常用命令 git常用命令总结git常用命令讲解 2. git教程相关网站 廖雪峰的git教程猴子都能懂...

  • Git submodule相关使用总结

    git config --global alias.pull "!git pull && git submodul...

  • python查找相关总结

    python有2个字符串查找的内建函数,分别是index和find。index的特点如下:1.如果找不到值会抛异常...

  • Python相关问题总结

    日期:2017-11-30 今天打算把Python2.7升级到Python3.6,就重新安装了Python3.6,...

  • python基础相关总结

    五、判断python中某个模块是否存在: import requests print(hasattr(reques...

网友评论

      本文标题:python git相关总结

      本文链接:https://www.haomeiwen.com/subject/xotinhtx.html